Судя по вашему описанию, проблема заключается в неправильной обработке запросов к статическим файлам в конфигурации Nginx. Ваша конфигурация имеет правило `try_files`, которое перенаправляет все запросы на `index.html`, если запрашиваемый файл не найден. Это означает, что если запрашивается файл CSS, и он не будет найден в указанной директории, Nginx вернёт `index.html`, что объясняет, почему вы видите HTML-код вместо стилей.
Чтобы исправить эту проблему, вам нужно настроить Nginx так, чтобы он корректно обрабатывал запросы к статическим файлам, например, к `index.css`. Вот пример, как вы можете изменить вашу конфигурацию:
```nginx
server {
listen 12345;
location / {
root /home/testapp/build;
index index.html;
try_files $uri $uri/ /index.html;
}
location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2|svg|ttf)$ {
root /home/testapp/build;
expires 30d;
access_log off;
}
}
```
### Что было изменено
1. **Порядок параметров в `try_files`**:
- Теперь сначала проверяется наличие файла по запрашиваемому URI (`$uri`), если его нет, проверяется наличие директории (`$uri/`), если и этого нет, то будет возвращён `index.html`. Это позволяет правильно обрабатывать статические файлы.
2. **Добавление блока для обработки статических файлов**:
- Конфигурация добавляет отдельный блок `location`, который будет служить для обработки всех запросов к статическим файлам (CSS, JS, изображения и т.д.). Это позволяет Nginx переходить непосредственно к запрашиваемым статическим файлам без перенаправления.
После внесения изменений не забудьте перезапустить Nginx для применения новой конфигурации:
```bash
sudo systemctl restart nginx
```
Попробуйте снова открыть ваше собранное приложение и проверить, загружаются ли стили из `index.css`. Если всё было настроено правильно, стили теперь должны применяться.