您可以使用angular-cli开发角度2应用程序。要在IIS上的生产环境中部署应用程序,您可以使用: ng-build --prod命令从angular-cli命令提示符构建应用程序。这将生成部署在dest文件夹中所需的文件。这些只是您的应用使用的HTML,JavaScript,CSS和其他资产。 您可以复制dest文件夹的内容并将其部署到IIS Web应用程序的文件夹中。
注意: 角2路由(带散列)将在IIS上没有任何问题的工作。只需创建默认网址重写规则,将所有请求重定向到您的角度应用程序的index.html文件。规则将重定向所有请求,除了必需的js文件和实际的角度应用网址(即的index.html或index.html#/ {路由值}到index.html的
EX:<规则> <规则名称=”。默认“> < match url =”(。*).js | index.html(。*)“negate =”true“/ > < action type =”Rewrite“url =”/ index.html“/ > </rule > < /规则>
角度2路由(无散列)将无法与IIS一起使用。对于纯HTML应用程序,IIS将路由传入的请求,如果该页面不存在于该位置,则将该请求指向错误页面。
在.Net MVC应用程序中,您可以创建一个默认路由来处理所有传入的请求url并将其重定向到您的角度索引视图。
防爆路线的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西谢尔斯基,但我该怎么办Windows身份验证,如果我不是在IIS伞发展? –
我不知道用IIS开发,但如果它意味着通过HTTP进行身份验证,那么它应该是可能的 –