站点智能HTML缓存清除

Hello,Folks,我希望你们都做得很好

智能HTML缓存清除-正如名称显示它以智能方式清除HTML缓存

网站内容树中,如果为两个或两个以上国家/区域建站并发布网站内容,通过缓存.aspx观察HTML清除每个网站不应该发生

实现此目标时,我做了分析发现 当我们在内容树上发布任何项目时, 置缓存清除默认实施为无效万一发布模板或媒体项目 或除内容以外的任何东西 整体HTML缓存应该清除并发布整个网站 时HTML缓存 所有网站应该清除智能 HTML缓存清除当本地或远程网站发布任何项目时会高效和精确处理所有假设等它需要清除全HTML缓存而非默认实现时,Sevencore笔试将处理我们的工作

每当我们面对挑战时, 都会去谷歌, 并发现Mark Stiles博客(Mark Stiles)https://markstiles.net/Blog/2011/05/26/partial-html-cache-clearing.aspx帮助我实现目标,但远程发布,如果生产服务器上启动Sitecore呢?或万一我们想测试它本地正因如此,我试图修改代码并得到了解决方案

步骤1:创建类SmartHtmlCacheClearer
公共类SmartHtlCacheClearer {#区域域私有数组List_sites=新数组Lists#端区域#区域属性公共数组网站#端区域方法////当发布:端或发布:端:远程事件触发时调用此方法公共空域CleanCache(对象发送器,事件Args ags) {Assert.Assert.ArgumentNotNullAssert.ArgumentNotNull(args, "args")!{数据库=Null!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++指南空Guid=指南空//这将对本地目标运行 ifss.GetTypes.Strings.Equalsssif(evatArgs.Paraters!database = Factory.GetDatabase(publishOptions.TargetDatabase.Name)!CleanHtmlCache(数据库发布Objects.RootetepublishOptions.RootItem.ID.ToGuid() : emptyGuid)!}                  }                  //THIS WILL RUN ON THE REMOTE TARGETS                  if (args.GetType().ToString().Equals("Sitecore.Data.Events.PublishEndRemoteEventArgs", StringComparison.InvariantCultureIgnoreCase))                  {                      PublishEndRemoteEventArgs remoteEventArgs = (PublishEndRemoteEventArgs)args!database = Sitecore.Configuration.Factory.GetDatabase(remoteEventArgs.TargetDatabaseName)!CleanHtmlCache(数据库远程EventArgs.RoootId远程EventArgs.rootI{日志.Error/{错误清除HTML缓存:+ex.Message}}////这种方法将验证是否清除HTML高速缓存供特定网站或供所有网站使用,它也将清除HTML缓存供特定网站使用,如果动画用于特定网站私有空域CleanHtmlCache(数据库指导项目guid){if项目启动//如果启动项不是站点根项,则我们将清除全HTML缓存 {bleHTMLACEACleed=伪var网站Info=当前Troject.GetSiteInfoSiteContext网站Context=Factory.GetSite(SiteInfo.Name)smartHtmCacheClearer开始清除HTML缓存+siteInfo.Name+网站{HtmlCache htmlCache=CacheManager.GetHtmCache/htmlCache.ClearsiteHTMLACECLELsiteHTMLACECleer成功清除HTML缓存+siteInfoName+网站smartHtmlCacheleer清除HTML缓存+SiteInfo.Name+网站时失败{//if startI模板项目或媒体库项目)比清除HTML缓存所有网站ClearFullCache()!{//if当前项目无效表示用户选择发布网站选项//清除HTML缓存清除FullCache{日志.Warn(SmartHtmCacheClearer因目标数据库无效失败///本方法清除全HTML私有空格清除库{log.Info(SmartHtmCacheleer清除HTML所有网站缓存Formtidex=0index < this._sites.Countindex+++{siteContext网站=Factory.GetSite/{HtmlCache htmlCache =CacheManager.GetHtmCache/htmlCache.Clear日志.info}#端区域

步骤2:替换发布:端并发布:端:远程处理器查询SmartHtmlCacheClearer类 web.config

web.config文件中事件段需要添加此类引用并允许Sitecore执行代码代之以Sitecore默认代码

我们只需修改处理程序发布:端并发布:端:remote

                   
                   
就是这样

注意: 请具体说明处理器中应执行的确切方法名

Happy Sitecoring.!