2014-01-17 46 views

回答

9

在請求末尾沒有斜槓的URL時,preprocessRequest管道的「StripLanguage」處理器會將路徑重寫爲Settings.DefaultPageName設置(默認爲「default.aspx」)的值。由於這種頁面實際上存在於您的網站上,因此ASP.NET MVC路由系統不處理此類請求,並且提供文件本身。此行爲通過RouteCollection.RouteExistingFiles屬性(默認爲false)進行控制,請參閱以下文章以獲取詳細信息: http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.routeexistingfiles.aspx。 在其他情況下,當在語言後面添加斜線時,這不會發生,因爲「StripLanguage」處理器不會重寫路徑(這也不是預期的行爲)。因此,請求URL與站點中的「default.aspx」靜態文件不匹配,並且ASP.NET MVC正在處理請求。

我建議你將以下設置添加到的「web.config」文件(而不是創建一個「Default.aspx的」頁),它指向的「默認」頁面,而擴展名:

<settings> 
    <setting name="DefaultAspxPageName" value="default"/> 
</settings> 

之後,沒有「.aspx」擴展名的/ default URL將由MVC處理,並且相應的項目將在語言URL部分之後獨立於斜線呈現。 在我身邊,它工作。

我想指出的是,答案不是我自己的,而是來自Sitecore的支持,我想擴展一個大的「謝謝!」至。我一直使用這個搜索引擎,直到他們幫助我,我認爲我想擁有這個文檔,並且在其他人爲之奮鬥時很容易找到它。提交了一個錯誤,他們正在修復它。

+0

我找不到'在web.config中Settings.DefaultPageName',我看着在DLL和代碼搜索'DefaultAspxPageName',這在配置中我都找不到!這只是你添加到配置呢?無論哪種方式,沒有一些文件找不到這種方法!很好的發現。 – jammykam

+0

是的,我添加了它,它解決了我的問題。不知道爲什麼它不存在... –

+0

有關的排序(關於爲什麼「默認」作品):http://www.nehemiahj.com/2013/11/sitecore-default-pages-showing-home-page。 html –

9

從web根目錄中刪除default.aspx文件。
這將解決您的問題。

+0

是的,這也工作 –

相關問題