You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sitecore 7.2:如何防止发布操作删除Web库中生成的文件夹及项目

解决Sitecore 7.2中Web库生成文件夹被发布删除的问题

这问题我在Sitecore 7.x项目里踩过好几次坑,核心原因是Sitecore的默认发布逻辑会同步Master和Web数据库的内容——当你发布上级节点时,Sitecore会对比Master与Web中该节点下的所有项,把Web里存在但Master里没有的内容(也就是你直接在Web库生成的文件夹)判定为冗余项,进而删除。下面给你几个可行的解决思路:

1. 配置发布排除规则

直接在Sitecore配置里把目标文件夹加入发布排除列表,让发布流程跳过对它的处理:

  • 打开Sitecore.config(或者你自定义的发布配置文件),找到<publishExclude>节点
  • 添加对应文件夹的路径规则,示例:
    <exclude path="/sitecore/content/你的上级节点/生成的文件夹名称" />
    
  • 注意:如果生成的文件夹路径是动态变化的,可能需要结合自定义代码动态添加排除规则,或者用通配符匹配(比如/sitecore/content/你的上级节点/*Generated*)

2. 编写自定义发布处理器

通过自定义处理器拦截发布的删除操作,跳过对目标文件夹的删除:

  • 创建一个继承自PublishItemProcessor的类,示例代码:
    using Sitecore.Publishing.Pipelines.PublishItem;
    
    namespace YourProject.Namespace
    {
        public class SkipGeneratedFolderDeletion : PublishItemProcessor
        {
            public override void Process(PublishItemContext context)
            {
                var targetItemPath = context.Item.Paths.FullPath;
                // 替换成你生成文件夹的具体路径或识别标识
                if (targetItemPath.Equals("/sitecore/content/你的上级节点/生成的文件夹名称", 
                    StringComparison.OrdinalIgnoreCase))
                {
                    // 取消当前删除操作
                    context.Cancel = true;
                }
            }
        }
    }
    
  • 在Sitecore.config里注册这个处理器,放在发布删除阶段的前面:
    <sitecore>
      <pipelines>
        <publishItem>
          <processor type="YourProject.Namespace.SkipGeneratedFolderDeletion, YourProjectAssembly" />
        </publishItem>
      </pipelines>
    </sitecore>
    

3. 把生成内容移到非发布同步区域

如果业务允许,将直接在Web库生成的文件夹放到Sitecore内容树里不参与发布的分支下,比如:

  • /sitecore/system下的自定义节点(默认发布流程不会同步这个区域)
  • 专门创建一个不关联发布目标的内容分支
    这样发布上级节点时,完全不会触及这些非发布区域的内容,从根源避免被删除。

4. 改用增量发布(辅助方案)

如果你之前用的是完整发布,可以尝试切换为增量发布:

  • 增量发布只会同步Master里有变更的项,默认不会删除Web里额外存在的内容
  • 局限性:如果上级节点在Master里有内容变更,增量发布仍会处理该节点下的内容,可能还是会触发删除,建议配合前面的排除规则或处理器一起使用

注意事项

  • 修改配置文件后需要重启Sitecore实例才能生效
  • 自定义处理器要做好测试,避免影响其他正常的发布操作
  • 如果生成的文件夹有子项,记得把排除规则或拦截逻辑覆盖到子项

内容的提问来源于stack exchange,提问作者SpaceJump

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:50