您可以使用 angular-cli 开发 angular 2 应用程序。要在 IIS 上的生产环境中部署应用程序,您可以使用:
来自 angular-cli 命令提示符的 ng-build --prod 命令来构建应用程序。这将在 dest 文件夹中生成部署所需的文件。这些只是您的应用程序使用的 HTML、javascript、css 和其他资产。
您可以复制 dest 文件夹的内容并部署到 IIS Web 应用程序的文件夹中。
注意:
Angular 2 路由(带有哈希)在 IIS 上可以正常工作。只需创建默认 URL 重写规则,它将所有请求重定向到 Angular 应用程序的 index.html 文件。规则会将所有请求重定向到 index.html,但所需的 js 文件和实际的 Angular 应用程序 URL(即 index.html 或 index.html#/{route-value})除外。
EX:
Angular 2 路由(无哈希)不适用于 IIS。如果是纯 HTML 应用程序,IIS 将路由传入的请求,如果该位置不存在此类页面,它会将请求重定向到错误页面。
如果是 .Net MVC 应用程序,您可以创建一个默认路由来处理所有传入的请求 url 并将其重定向到您的角度索引视图。
MVC 应用程序的 Ex Route:
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;
}
}