【问题标题】:Sitecore multi-site patch file conflictsSitecore 多站点补丁文件冲突
【发布时间】:2021-12-16 06:48:39
【问题描述】:

我们有多个站点在一个站点核心实例下运行。每个都有一个补丁文件如下

App_Config/Include/xxx/xxx.Asite.config
App_Config/Include/xxx/xxx.Bsite.config

当我通过/sitecore/admin/showconfig.aspx 检查配置时,我注意到一些设置,例如<setting name="IgnoreUrlPrefixes"> 总是从最后一个配置文件中按升序获取(所以我的情况是xxx.Zsite.config)并应用于所有站点。

如何将该设置限制为该特定站点并强制“Bsite”从“xxx.Bsite.config”文件中获取<setting name="IgnoreUrlPrefixes"> 设置而不是xxx.Zsite.config

【问题讨论】:

  • 您可以发布两个站点的配置文件内容吗?

标签: sitecore


【解决方案1】:

IgnoreUrlPrefixes 设置是包含管道 (|) 分隔的参数列表的 Sitecore 设置之一。不幸的是,Sitecore 中的配置补丁架构不支持从此类列表中添加/删除元素。它只能用新值替换。这就是您从最后处理的文件中获取值的原因。在我看来,这是配置的设计缺陷。

要解决此问题,您可以在单独的文件中维护完整的值列表,这样您就不会在多个文件中使用此设置。

如果这不是一个合适的解决方案,您可能会覆盖 Sitecore.Pipelines.HttpRequest.IgnoreList 处理器,您可以从另一个配置位置读取您的忽略列表,您将每个忽略 url 保留为单独的元素。因此,您可以在单独的配置文件中修补单个元素。但是,这样的解决方案不会改变静态方法的行为,例如Sitecore.Web.WebUtil.ShouldIgnoreUrl(),因此它可能不适用于所有场景。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多