![](/img/trans.png)
[英]AngularJs - change default state of slider directive in this instance?
[英]How to change angularJS directive for IIS Default Web Site
我正在使用ASP.NET MVC和AngularJS創建一個Web應用程序。 當我調試Web應用程序時,URL是這樣的:
http://localhost/Home/Index#/Login
當我將它發布到我使用的IIS開發服務器時,我使用默認網站,所以url將是這樣的:
http://ipaddress/MyApp/Home/Index#/Login
因此,我的指令不起作用。 它們設置如下:
'/Login':
{
templateUrl: '/Account/Login',
controller: 'AccountController'
},
在IIS開發服務器上,此指令調用Web應用程序的路由:
http://ipaddress/Account/Login
應該是
http://ipaddress/MyApp/Account/Login
有沒有辦法在兩種情況下改變指令?
我試圖在templateUrl前面使用“/”字符,但它似乎不起作用(它獲取localhost / Home / Account / Login而不是localhost / Account / Login)
剛剛遇到這個尋找與在網站下面的IIS應用程序中托管Angular應用程序相關的類似問題的答案。 我只需添加一個就可以修復TemplateUrl問題.
之前/
'/Login':
{
templateUrl: './Account/Login',
controller: 'AccountController'
},
我可以為您提供兩種選擇:
服務器配置
不要使用虛擬目錄在開發環境中托管您的應用程序。 而是在IIS中托管具有不同主機頭的不同站點,以便您可以從根目錄引用內容,例如: /Account/Login
配置模塊
考慮使用一個注入角度應用程序的模塊,該模塊包含可用於為特定環境構建URL的配置。 然后為開發環境提供此模塊文件的一個版本,一個用於本地,一個用於生產。 Javascript的優點在於您可以在不同的環境中包含不同的javascript文件,因此模塊可以來自不同的文件。
有關此選項的更多信息,請查看此答案: https : //stackoverflow.com/a/16340438/431522
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.