Nginx конфликтует с угловыми 6 маршрутами - PullRequest
0 голосов
/ 22 февраля 2019

У меня угловое 6 приложение с базовым href, установленным на /dashboard/.Встроенные файлы, расположенные на сервере, сгенерированные с флагами --prod.

nginx conf выглядит следующим образом:

location /dashboard {
    alias /<path_to_built_files>/frontend/dist/frontend/;
}

Когда я впервые захожу на свой сайт, скажем, example.com/dashboard,приложение отлично загружается и угловые перенаправляет на маршрут по умолчанию /create.Следовательно, браузер показывает мой маршрут как example.com/dashboard/create.

Именно так я и хочу, чтобы он вел себя.Однако, если я перезагружаю страницу отсюда, браузер попытался найти example.com/dashboard/create, который возвращает 404 Not Found.

Что я делаю не так в конфигурации здесь?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете использовать хэш стратегия определения местоположения , которая помогает запоминать URL для браузеров. Он использует часть хеш-фрагмента URL-адреса для хранения состояния для клиента, его проще настроить и не требуется никакого взаимодействия со стороны сервера .Итак, просто добавьте useHash в конфигурацию вашего маршрутизатора следующим образом -

RouterModule.forRoot(appRoutes, {useHash: true});

Тогда вы сможете перестроить свое приложение и развернуть его в производство.Вы увидите # добавленный к вашему URL.

0 голосов
/ 22 февраля 2019

Вам нужно установить индексный файл и редирект, если он не может найти файл по пути к index.html:

location /dashboard {
  alias /<path_to_built_files>/frontend/dist/frontend/;
  index index.html;
  try_files $uri $uri/ index.html =404;
}
...