【问题标题】:Sitecore 10.1 | Site resolving works only if I check "Enable Preview" site property (for items referenced from different site)Sitecore 10.1 |仅当我选中“启用预览”站点属性(对于从不同站点引用的项目)时,站点解析才有效
【发布时间】:2021-06-21 18:00:49
【问题描述】:

我有多个站点架构。喜欢这个

sitecore/content/site1
sitecore/content/site2

对于 site1 中引用的每个 site2 项目,我得到以下 URL:

www.site1.com/sitecore/content/site2/item

而不是

www.site2.com/item

我调试了 Sitecore.Sites.DefaultItemSiteResolver 发现,只有将“启用预览”站点属性设置为 true 才能解析该站点:

但是现在,将其设置为 true 后,我遇到了另一个问题,页面解析现在也可以在预览中工作(这不是所需的行为,我只想在那里解决“webiste”站点)。它甚至会忽略设置为 false 的“Preview.ResolveSite”设置。

我做错了什么?如何为已发布的网站启用网站解析但不为预览启用网站解析?

【问题讨论】:

    标签: sitecore sitecore-mvc


    【解决方案1】:

    Sitecore.config 中有几个设置有助于在多站点 Sitecore 解决方案中配置正确的站点解析逻辑:

    • Rendering.SiteResolving — 启用站点解析,因此可以使用正确的主机名、语言和虚拟文件夹呈现跨站点链接。
    • Rendering.SiteResolvingMatchCurrentSite — 构建跨站点链接时会考虑项目位置。某个站点根目录下的所有项目都将在该根目录的上下文中解析。
    • Rendering.SiteResolvingMatchCurrentLanguage — 如果为 true,则在构建跨站点链接时会考虑上下文语言。

    对于任何多站点解决方案,建议将Rendering.SiteResolving 设置值保持为true,以确保使用正确的参数构建跨站点链接。在这种情况下,如果没有其他站点可以解析,体验编辑器和预览模式将在 Preview.DefaultSite 设置中定义的站点上下文中打开。

    要确保在正确站点的上下文中打开项目,您必须将 Rendering.SiteResolvingMatchCurrentSite 设置设置为 true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 2011-04-26
      • 2020-02-21
      • 1970-01-01
      相关资源
      最近更新 更多