Это происходит потому, что базовое nginx
изображение будет пытаться обслуживать запросы от docroot
, поэтому оно попытается найти login.html
при отправке запроса на /login
.
* 1006.* Чтобы избежать этого, вам нужен nginx для обслуживания
index.html
независимо от запроса , и, таким образом,
angular
позаботится о маршрутах.
Для этого вам необходимо изменить nginx.conf
, который в данный момент находится на изображении, на следующее:
try_files $uri $uri/ /index.html;
Вместопо умолчанию:
try_files $uri $uri/ =404;
Вы можете сделать это разными способами, но я думаю, что лучший подход - это иметь в вашем Dockerfile
дополнительную команду, которая копирует конфигурацию nginxвот так:
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
И замените этот файл nginx/default.conf
в вашем каталоге (содержащий конфигурацию nginx по умолчанию) с заменой указанной выше команды.
EDIT
Уже есть изображения, которые делают именно это, так что вы можете просто использовать изображение, отличное от официального, которое сделано специально для этого, и оно должно работать нормально: пример