如果页面已发布或过期,如何清除缓存

时间:2019-11-13 08:41:47

标签: caching typo3 typo3-9.x

行为:

  • 我在一页之下有几个子页
  • 这些页面可以设置为在特定时间发布或过期
  • 我有一个列出这些页面的主页

我想要拥有的东西:

如果子页面之一已发布或已过期,则清除主页的缓存

我尝试过的事情:

TypoScript config.cache.all = pages:<parent-id-of-subpages>

它没有用。该页面在发布日期之后没有出现在列表中。 不使用任何工作区。

1 个答案:

答案 0 :(得分:0)

我认为,只要您没有在Typoscript中启用config.sendCacheHeaders,这可能会使网站访问者存储本地缓存的页面,那么您可能不必对此加以照顾。 TYPO3缓存机制非常聪明,我认为他们要注意记录中的发布日期-特别是页面。

更新

我在9个LTS中进行了快速测试,以验证我的期望。实际上,您必须配置config.cache.all = pages:<parent-id-of-subpages>才能使缓存在其他页面的开始/停止日期自动清除。这对我有用,并且页面会在菜单出现时自动隐藏或显示在菜单中,而无需手动清除任何缓存。 但是您确实必须设置此Typoscript,否则页面将保持缓存状态。

TCEMAIN.clearCacheCmd不是这里的解决方案,因为这只会在后端用户在后端执行某些操作时触发页面缓存被删除。这就是为什么它属于PageTSConfig(后端)部分而不属于Pages Typoscript设置模板(Frontend)的原因。

为什么它对您有用?我猜应该是config.sendCacheHeaders,应该将其设置为0,否则您可能会在标头中传递页面缓存的任何其他生存期……也许通过htaccess mod_expires?使用浏览器的隐身窗口并在加载页面时检查网络。检查随请求一起发送的标头以获取任何缓存信息。