2017-03-02 88 views
2

我的角度項目位於app文件夾中,因此,我指的是我必須寫入http://localhost:45485/app,但我想從此URL中刪除app。我試圖這樣做,但它不起作用。我不知道該怎麼做,請幫助我。更改根路徑ASP WebApi

web.config文件:

<rewrite> 
    <rules> 
    <clear/> 
    <rule name="app" stopProcessing="true"> 
     <match url="^(.+)$" /> 
     <conditions> 
     <add input="{APPL_PHYSICAL_PATH}app\{R:1}" matchType="IsFile" /> 
     </conditions> 
     <action type="Rewrite" url="/app/{R:1}" /> 
    </rule> 

    <rule name="index.html as document root" stopProcessing="true"> 
     <match url="^$" /> 
     <action type="Rewrite" url="/app/index.html" /> 
    </rule> 
    </rules> 
</rewrite> 

在結果,我有這樣的問題:

enter image description here

+0

雖然我感興趣的是如何做到這一點(正確),對「爲什麼」好奇?對於「web api」應用程序?如果這是一個前端角度項目(僅),那麼它似乎是「方圓孔中的圓釘」。...... – EdSF

+0

@EdSF,我只是研究它,並不明白一些時刻,但爲什麼不呢?在我看來,這是真的,所以我想嘗試。 – Lightness

回答

0

我可能沒有得到這個 「目的」 或要點這個問題假設你只是想讓你的SPA成爲「主要」入口點(又名http://example.com/),而你的Angular資產全都在/app文件夾然後,不需要重寫重寫規則,也不影響(整個)Asp.Net/MVC/Web Api應用程序(因爲重寫規則)。

不形成棱角「專家」,所以這是一個簡單的例子,爲您提高:

  • ng-app可以在「默認」坐得很清楚(「家」 - >「指數」) ViewASP.Net MVC/Web Api應用程序 - 如果您願意,可以使用「容器」。它不需要「重寫」規則,因爲它是您網站的「索引」(第一/默認頁面)。

    index.cshtml MVC使用ui-router

    <div id="foo" ng-app="myNgApp"> 
        <ui-view></ui-view> 
    </div> 
    
  • 您的角度資產可以在/app文件夾

    /app 
        index.html 
        page2.html 
    
  • 使用UI路由器View簡單的例子(見上面的鏈接),它會去像這

    $stateProvider 
    .state('home', { 
        templateUrl: '/app/index.html' //maps to root -> app -> index.html 
    }) 
    .state('foo', { 
        templateUrl: '/app/page2.html' //maps to root -> app -> page2.html 
    }) 
    

請注意,我用的templateUrl到資源的完整路徑(「根目錄相對的」),因爲它映射到你的網站/應用程序文件夾,而不是僅僅相對(於app子文件夾)。

Hth。