Вам необходимо создать перенаправление на index.html в IIS для любого маршрута, потому что в Angular SPA приложение отвечает за маршрутизацию, а не сервер. См. Здесь Угловая маршрутизация .
Однажды, например, http://yourdomain/ запрашивается -> index.html обслуживается и, наконец, приложение загружается.
Но как только, например, http://yourdomain/login запрашивается, и нет перенаправления на серверную сторону к index.html
, сервер не имеет ресурсов, сопоставленных с этим маршрутом, и обрабатывает запрос с помощью 404 - Not Found
Ошибка.
Как только вы обслуживаете index.html для любого запроса, который завершится ошибкой 404 - Not Found
(за исключением ресурсов, таких как css, шрифты изображений), Angular-маршрутизатор вступает во владениеи показывает соответствующий вид после загрузки приложения.
Вот пример правила перезаписи для IIS:
<rule name="Angular" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>