簡體   English   中英

如何更改IIS默認網站的angularJS指令

[英]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'
        },

我可以為您提供兩種選擇:

  1. 服務器配置

    不要使用虛擬目錄在開發環境中托管您的應用程序。 而是在IIS中托管具有不同主機頭的不同站點,以便您可以從根目錄引用內容,例如: /Account/Login

  2. 配置模塊

    考慮使用一個注入角度應用程序的模塊,該模塊包含可用於為特定環境構建URL的配置。 然后為開發環境提供此模塊文件的一個版本,一個用於本地,一個用於生產。 Javascript的優點在於您可以在不同的環境中包含不同的javascript文件,因此模塊可以來自不同的文件。

    有關此選項的更多信息,請查看此答案: https//stackoverflow.com/a/16340438/431522

嘗試在主頁面標題部分設置基本URL

<base href="/MyApp">

對dev和release之間的差異使用條件編譯。 請參閱此處C#和ASP.NET MVC:在視圖中使用#if指令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM