6
我有一個AngularJS應用程序利用URL重寫進行鏈接。我重寫規則是這樣的:IIS URL重寫規則
<rewrite>
<rules>
<rule name="MainRule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="Pattern" pattern="^api/(.*)" negate="false" />
</conditions>
<action type="Rewrite" url="Default.cshtml" />
</rule>
</rules>
我發現SO此解決方案:How do I configure IIS for URL Rewriting an AngularJS application in HTML5 mode?並提出一個修改,讓我的API通過。
本質上,我想將我的所有請求重定向到Default.cshtml
除了調用我的Web API。當我在基礎URL上加載應用程序時,此功能非常棒:localhost/myapp
。不過,如果我重新加載像角路線的頁面:localhost/myapp/dashboard
失敗說:
<Error><Message>No HTTP resource was found that matches the request URI 'http://localhost/myapp/dashboard'.</Message>
<MessageDetail>No type was found that matches the controller named 'dashboard'.</MessageDetail></Error>
我周圍的工作我做其中:
<rewrite>
<rules>
<rule name="Default" stopProcessing="true">
<match url="^(?!lib|api|dist|assets|app/|bower|common|main|signalr|templates|bower_components/).*" />
<action type="Rewrite" url="Default.cshtml" />
</rule>
</rules>
</rewrite>
它工作得很好。任何想法如何我可以利用上面的清潔解決方案,仍然完成重寫?
信號模式是一個救生員。因此而掙扎了幾個小時。未來用戶的另一點是,如果您在startup.cs app.start()中指定了自己的根路徑,那麼您將遇到問題。我不得不刪除我的根路徑「/ www」,只留下一切信號R映射。 – 2015-08-11 01:27:54
我愛你隊友!你的信號模式是一個救星²只需將其更改爲管理員(我的文件夾應用程序),並像魅力一樣工作。我不知道這是什麼意思,因爲我只是一個設計師lmao,但它的工作。所以謝謝。 – 2017-10-10 19:55:35