Ошибка 304 (Not Modified) означает, что запрашиваемый ресурс не изменился с момента последнего запроса. Однако в вашем случае, судя по описанию, при получении этого кода ошибки браузер ожидает получить JavaScript файл, но вместо этого получает HTML (например, страницу ошибки 404 или домашнюю страницу). Это вызвано тем, что NGINX не может правильно отдать скрипт JavaScript по указанному пути для вашего второго приложения.
Скорее всего, проблема заключается в конфигурации NGINX, а точнее — в том, как вы обрабатываете запросы к подкаталогу `/project2`. Когда ваш браузер пытается получить ресурс (например, скрипт), он обращается к `/project2/...`, но из-за неправильной конфигурации nginx может неверно перенаправлять запросы.
Чтобы решить эту проблему, проверьте следующие моменты:
1. **Проверьте, что у вас есть правильное определение префикса пути**. Для второго приложения вам нужно, чтобы NGINX также корректно обрабатывал пути для статических файлов. Попробуйте модифицировать ваше конфигурирование следующим образом:
```nginx
server {
listen 80;
# Docker DNS
resolver 127.0.0.11;
location / {
# Hack to prevent nginx from resolving container's host on startup
set $docker_host "project-1";
proxy_pass http://$docker_host:4000;
}
location /project2/ {
# Hack to prevent nginx from resolving container's host on startup
set $docker_host "project-2";
proxy_pass http://$docker_host:4000;
# Добавьте правило для обработки статических файлов:
try_files $uri $uri/ /project2/index.html;
}
}
```
2. **Используйте `try_files`**. Это правило позволяет NGINX проверять, есть ли файл по запрашиваемому URI. Если файл не найден, он будет переслан на `index.html`, что необходимо для маршрутизации в одностраничных приложениях (SPA), таких как Angular.
3. **Проверьте настройки CORS и MIME**. Убедитесь, что сервер отдает правильные заголовки для JavaScript файлов. Например, MIME-тип для `.js` файлов должен быть `application/javascript`. Это можно также явно указать в блоке `location`.
4. **Логи**. Не забудьте проверить логи NGINX на наличие ошибок, которые могут дать больше информации о том, что происходит.
После внесения изменений не забудьте перезапустить NGINX, чтобы применить новую конфигурацию.