Развернуть угловой в IIS 7.5 не работает нормально - PullRequest
0 голосов
/ 15 февраля 2019

I ', хочу развернуть Мой угловой проект, но он потерял компонент

Мой процесс

Шаг 1:

Я выполняю cmd:

ng-build --prod

Шаг 2:

Я добавляю веб-сайт в IIS с путем внутрь dist

Шаг3:

Страница индекса работает Нормально, но вход другого компонента не найден 404

http://localhost/login Ошибка HTTP 404.0 - Не найдено

В файле App.Module.Ts Route Config Routes

const routesConfig:Routes=
[
  {path:"kinds",component:KindsComponent},
  {path:"",component:FilmsComponent},
  {path:"films",component:FilmsComponent},
  {path:"login",component:LoginComponent},
  {path:"accounts",component:AccountsComponent},
  {path:"customers",component:CustomersComponent},
  {path:"director",component:DirectorComponent}
];

Примечание еще раз: http://localhost работает нормально, но другой компонент не найден при сборке проекта и развертывании в IIS

Наконец:

Как это работает?Где моя ошибка?

1 Ответ

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

Вам необходимо создать перенаправление на 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...