2016-06-10 16 views
0

我有一個重寫規則說。IIS URL重寫忽略.chtml(剃鬚刀)文件

site.one/content/templates/whatever.cshtml - > site.two /內容/模板/ whatever.cshtml

時site.one試圖獲取.cshtml文件時會發生問題。它返回一個404. 但是,如果我將擴展名更改爲.js或.html,則該規則起作用。

如果我使用site.two鏈接請求處理它就好了,這是沒有任何rewriterules ofcourse。 site.one也可以處理自己目錄中的.cshtml文件。

蔭使用IIS 10,Urlrewrite模塊2,和應用程序請求路由3.

UPDATE

因此,在這種情況下,.cshtml是是獲取與異步text.js模板文件,然後使用句柄作爲渲染前的最後一步進行編譯,但其中一些需要由翻譯引擎進行處理。如果不重寫,這將起作用。

回答

0

Razor文件永遠不會由MVC框架或IIS提供服務。 Razor文件由MVC處理,處理結果通過控制器操作方法發送到輸出。在這種情況下,服務器正確地響應404響應,因爲這些文件在默認情況下被阻止(您永遠不想向用戶提供源代碼的未處理.cshtml文件)。

由於這些文件被IIS阻止,因此無法使用URL重寫模塊重定向它們(也不應該存在)。

我猜你可能想重定向你的MVC URL,默認情況下它沒有擴展名。他們訪問的默認方式(可以自定義)是/{controller}/{action}/。例如,在MVC模板中,進入關於頁面的默認方式是通過URL /Home/About/

+0

好吧,我明白了。我更新了我的問題以獲得更多的上下文。 – jensaronsson