1

我们有四种不同的环境——开发虚拟机、开发、QA 和产品。所有环境对“网站”站点都有以下设置:

<site name="website" virtualFolder="/" physicalFolder="/" 
rootPath="/sitecore/content" startItem="/home" database="master" 
domain="extranet" allowDebug="true" cacheHtml="false" 
htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" 
xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" 
enableWebEdit="true" enableDebugger="true" 
disableClientData="false" loginPage="/" hostName="www.site.com" 
enableFallback="true" enforceVersionPresence="true"/>.

所以在 VM 和 prod 上,www.site.com/en/home/press 和 www.site.com/en/press 工作。

但是在开发和质量检查中,www.site.com/en/home/press 有效,但 www.site.com/en/press 无效。(与 startItem 一起使用,但没有它会得到 404)。

这发生在启用和禁用 ISAPI 的情况下(无例外)。

我不确定这里发生了什么或其他地方可以查看,除非确保我的起始项目处于良好状态,看起来是这样。

我能做些什么来解决这个问题?如果您需要更多信息,请告诉我。

谢谢

4

4 回答 4

2

尝试查看:

web.config中的“linkManager”标签,有一个属性叫:

语言嵌入:按需 | 总是 | 绝不

可以在这些解决方案上进行不同的设置。

于 2012-11-27T10:01:53.113 回答
1

如果您有多语言网站,建议使用
languageEmbedding: always
优点:

  • 在 IE8 中,有时会破坏语言 cookie,因为显示的语言是随机变化的。(我们在我们的环境中遇到过这个问题) LanguageEmbadding :总是会保留信息并且可以正常工作而不会出现任何问题。
  • 如果您已设置为需要,则第一次显示语言,下一次将隐藏。但这会给谷歌分析带来问题。在 GA 中,您将拥有 2 个具有相同页面内容的不同 URL,因此您的分析将不必要地分为 2 个页面。

是的,您可以检查配置文件是否有任何区别。正如 Martijn 提到的,您可以使用 www.site.com/sitecore/admin/showconfig.aspx 复制配置,使用任何文件比较工具(如 WinMerge 等)进行比较。

您的项目中的层次结构是什么?Sitecore-Content-home-Press 还是 Sitecore-Content-home-Home-Press?

在我的项目中,您提到的设置有 database = web.

于 2012-11-28T04:27:42.940 回答
1

我无法添加评论,但正如 Martijn 所说,您需要比较配置。现在这应该很容易,因为您应该使用配置包含文件,因此环境之间的更改应该非常小。如果您不使用它们,那么您应该开始使用它们,它可以让您更轻松地找出与默认 Sitecore 安装的差异,并且也将使您的升级在未来变得更加容易。或者,也许您正在将它们用于其他环境,这就是导致问题的原因?

全部关于 web.config 包含 Sitecore ASP.NET CMS 的文件

至于比较配置,请使用已经提到的WinMerge之类的文件比较工具,这样可以更轻松地消除差异。

此外,正如 Maulik 所说,默认配置具有:database="web" content="master"

于 2012-11-29T01:13:18.950 回答
0

这似乎是配置差异。使用 www.site.com/sitecore/admin/showconfig.aspx 比较实时配置。这样您就可以看到实际的配置,其中还包括您的所有 /app_config/include/ 文件

于 2012-11-27T10:12:15.897 回答