当我浏览我的首页时,例如/ sv我得到一个空白页面,上面写着“默认页面”。但是,当我尝试/ sv /它工作。像/ sv / example这样的子页面虽然没有斜线。我正在使用只有MVC视图的Sitecore 7.1。
答案 0 :(得分:9)
当请求末尾没有斜杠的URL时,preprocessRequest管道的“StripLanguage”处理器会重写Route.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的支持,我想扩展一个大的“谢谢!”至。我一直在搜索这个,直到他们帮助我,我认为我希望有这个文件,并且当其他人与之斗争时很容易找到。提交了一个错误,他们正在努力修复它。
答案 1 :(得分:9)
从网络根目录中删除default.aspx
文件
这将解决您的问题。
答案 2 :(得分:0)
DefaultAspxPageName是隐藏设置..我们可以找到更多这样的隐藏设置.. @
http://www.newguid.net/sitecore/2014/sitecore-hidden-string-configuration-settings/