Sitecore 在我的 MVC 解決方案中提供了一個空白頁面,其中只有文本“預設頁面”
當我瀏覽到我的起始頁時,例如 /sv,我得到一個空白頁面,上面只寫著“預設頁面”。但是,當我嘗試 /sv/ 時,它可以工作。像 /sv/example 這樣的子頁面可以在沒有斜線的情況下工作。我正在使用只有 MVC 視圖的 Sitecore 7.1。
當請求末尾沒有斜線的 URL 時,preprocessRequest 管道的“StripLanguage”處理器將路徑重寫為 Settings.DefaultPageName 設置的值(預設為“default.aspx”)。由於此類頁面實際存在於您的站點上,因此 ASP.NET MVC 路由系統不會處理此類請求,而是提供文件本身。此行為由 RouteCollection.RouteExistingFiles 屬性控制(預設為 false),詳細資訊請參閱以下文章:http: //msdn.microsoft.com/en-us/library/system.web.routing.routecollection。路由現有文件.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 的支持,我想表達一個大大的“謝謝!” 到。我一直在Google上搜尋,直到他們幫助我,我想我想要這個文件,並且在其他人遇到困難時很容易找到。送出了一個錯誤,他們正在努力修復它。
default.aspx從 Web 根目錄中刪除該文件。這將解決您的問題。