您可以使用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進行身份驗證,那麼它應該是可能的 –