您不需要使用任何patch:delete
或patch:instead
. 您只需将name
属性添加到新<site>
标签,以便 Sitecore 将它们视为单独的站点定义。
这里有一些进一步的解释:外部配置文件的配置补丁系统
创建App_config\Include\My.Site.Definition.config
包含内容的文件:
<sitecore>
<sites>
<site name="mysite" patch:before="site[@name='website']"
... />
</sites>
<events>
<event name="publish:end">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site name="mysite">mysite</site>
</sites>
</handler>
</event>
<event name="publish:end:remote">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site name="mysite">mysite</site>
</sites>
</handler>
</event>
</events>
</sitecore>
另一种选择是使用其他一些标签而不是<site>
标签,因为当父标签包含hint="list"
属性时,它将所有子标签视为该列表的项目。您需要确保每个标签都是唯一的。你可以这样使用它:
<event name="publish:end:remote">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site1>mysite</site1>
<othersite>othersite</othersite>
</sites>
</handler>
</event>