Вы можете использовать angular-cli для разработки углового приложения 2. Чтобы развернуть приложение для производства в IIS, вы можете использовать команду: ng-build --prod из командной строки angular-cli для создания приложения. Это создаст файлы, необходимые для развертывания в папке dest. Это всего лишь HTML, javascript, css и другие активы, которые использует ваше приложение. Вы можете скопировать содержимое папки dest и развернуть в папке вашего веб-приложения IIS.
Примечание: Угловая 2 маршрутизация (с хешем) будет работать без каких-либо проблем в IIS. Просто создайте правило перезаписи URL по умолчанию, которое перенаправит все запросы в файл index.html вашего углового приложения. Правило будет перенаправлять все запросы к index.html требуемых JS-файлы и фактических адреса Угловой приложении (например index.html или index.html #/{пути-значение} кроме
EX: < правил > имени < правила =». По умолчанию "> < соответствует url =" (. *) .js | index.html (. *) "Negate =" true "/ > < action type =" Rewrite "url ="/index.html "/ > </rule > </правила >
Угловая 2 маршрутизации (без хэша) не будет работать с IIS. В случае чистого HTML приложения IIS будет маршрутизация входящего запроса, и он будет повторно направьте запрос на страницу с ошибкой, если такая страница не существует в этом месте.
В случае приложения .Net MVC вы можете создать маршрут по умолчанию, чтобы обрабатывать все входящие запросы и перенаправлять их на ваш угловой индексный указатель.
Ex Route для MVC приложения:
routes.MapRoute(
name: "Angular",
url: "{*url}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { url = new AppFeatureUrlConstraint() }
public class AppFeatureUrlConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
if (values[parameterName] != null)
{
var url = values[parameterName].ToString();
if (url.StartsWith("angular/", StringComparison.InvariantCultureIgnoreCase))
return true;
else
return false;
}
return false;
}
}
Thx @Alexander Ciesielski, но как я могу сделать проверку подлинности Windows, если я не развивается под зонтом IIS ?? –
Я не знаю о разработке с помощью IIS, но если это означает аутентификацию по HTTP, то это должно быть возможно –