Я полагаю (поскольку проблема может иметь различные причины ...), что ваш сервер пытается обработать запрос на дочерний маршрут, но это должно быть сделано на клиенте Angular.
. Вы необходимо настроить сервер на откат до index.html
для всех запросов.
Пример Apache:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html
Пример Nginx:
try_files $uri $uri/ /index.html;
Подробнее в Angular документации .
Обновление для AWS:
AWS Усилить перенаправления по умолчанию до index.html
, когда Ошибка 404, но это простое перенаправление. Из документов :
Большинство платформ SPA поддерживают HTML5 history.pushState () для изменения местоположения браузера без запуска запроса к серверу. Это работает для пользователей, которые начинают свой путь с root (или /index.html), но не работает для пользователей, которые переходят непосредственно на любую другую страницу. Используя регулярные выражения, в следующем примере настраивается перезапись 200 для всех файлов для индексации. html, за исключением указанных расширений c, указанных в регулярном выражении.
Следующие настройки должны работать для AWS Усиление:
// Original address
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>
// destination
/index.html
// Redirect Type
200