这不是我经常看到的一个问题,通常它的EPiServer不会清除输出缓存“#”;'。我试图实现相反的目标。每次发布页面时都会删除整个缓存,并且当客户端每天发布几次时,这是令人沮丧的。
我使用httpCacheVaryByCustom
属性并尝试在EPiServer中实施public override string GetVaryByCustomString(HttpContext context, string custom)
规则并附带计划任务,以便在我们决定将更新捆绑在一起并在a处无效时使缓存无效预定时间。
我已经测试了这条规则并且可以使用:
<applicationSettings globalErrorHandling="Off" operationCompatibility="DynamicProperties" uiSafeHtmlTags="b,i,u,br,em,strong,p,a,img,ol,ul,li" disableVersionDeletion="false"
httpCacheability="Public" uiEditorCssPaths="~/assets/css/styles.css, ~/assets/css/editor.css" urlRebaseKind="ToRootRelative"
pageUseBrowserLanguagePreferences="false" uiShowGlobalizationUserInterface="false" subscriptionHandler="EPiServer.Personalization.SubscriptionMail,EPiServer"
uiMaxVersions="20" pageValidateTemplate="false" utilUrl="~/util/"
uiUrl="~/EPiServer/CMS/" httpCacheExpiration="01:00:00" httpCacheVaryByCustom="invalidateSiteCache" />
我的印象是,通过使用这种类型的缓存规则,只要发布/媒体上传内容,就会阻止EPiServer转储我的缓存。
虽然有没有办法阻止这种情况发生?
通过使用具有相同自定义字符串规则的标准[OutputCache],我获得了成功,唯一的问题是编辑将始终看到他们正在编辑的页面的缓存版本。
我在EPiServer的web.config中的应用程序设置是:
{{1}}