вы можете попробовать выполнить следующие шаги для создания и размещения сайта angular в iis:
сначала убедитесь, что вы установили узел на своем компьютере, выполнив следующую команду:
node --version
установите Angular CLI, используя npm
npm install -g @angular/cli
, запустите команду ниже и введите в папку wwwroot:
cd C:\inetpub\wwwroot
Создайте новый Angular проект
ng new hello-world
Теперь, когда базовое c приложение готово, мы разместим приложение с консоли, используя ng serve….
ng serve
, затем создадим приложение
ng build
После успешного завершения сборки все артефакты сборки публикуются в папке dist.
создать сайт в iis и задать путь к папке с помощью dist dist:
Правило маршрутизации перезаписи URL:
Этот шаг необходим для поддержки глубокой связи. Глубокая связь - это возможность для пользователя перейти непосредственно на страницу, введя маршрут в адресную строку вместо использования Angular маршрутизации. Глубокая связь создает проблему для IIS, поскольку URL-адрес, к которому пользователь пытается получить доступ, неизвестен серверу, и поэтому пользователь получает ответ 404. Решение состоит в том, чтобы сервер всегда возвращал root приложения, даже если пользователь запрашивает путь в приложении.
Теперь мы добавим файл web.config, в котором у нас будет правило перезаписи URL. Все запросы к этому веб-приложению, не относящиеся к файлам или папкам, должны перенаправляться в root приложения. Для веб-приложения или виртуального каталога на веб-сайте по умолчанию в качестве URL-адреса должен быть задан псевдоним (например, / MyApp /). Для веб-сайта на сервере root, URL-адрес должен быть установлен на /.
В нашем случае, поскольку мы используем веб-приложение HelloWorld, мы установим URL / HelloWorld /
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect all requests" 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="/HelloWorld/" />
<!--<action type="Rewrite" url="/" />-->
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>