9

当我浏览到我的起始页时,例如 /sv,我得到一个空白页面,上面只写着“默认页面”。但是,当我尝试 /sv/ 时,它可以工作。像 /sv/example 这样的子页面可以在没有斜线的情况下工作。我正在使用只有 MVC 视图的 Sitecore 7.1。

4

3 回答 3

9

default.aspx从 Web 根目录中删除该文件。
这将解决您的问题。

于 2014-01-17T11:09:33.407 回答
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。路由现有文件.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 的支持,我想表达一个大大的“谢谢!” 至。我一直在谷歌上搜索,直到他们帮助我,我想我想要这个文档,并且在其他人遇到困难时很容易找到。提交了一个错误,他们正在努力修复它。

于 2014-01-17T10:47:47.523 回答
0

DefaultAspxPageName 是隐藏设置..我们可以找到更多这样的隐藏设置..@

http://www.newguid.net/sitecore/2014/sitecore-hidden-string-configuration-settings/

于 2015-03-26T07:01:08.637 回答