繁体   English   中英

错误的 TYPO3 页面缓存

[英]Wrong TYPO3 Page Cache

此问题偶尔会出现在有大量访问者的页面上。 有时 TYPO3 会显示完全不同页面的内容(包括 HTML 标题部分)。

例如,如果用户调用以下页面: /products/ (带有listAction默认控制器ProductController ) TYPO3 显示随机控制器的内容和页面上相同插件的操作(如带有showAction ApplicationController )。 该站点不会重定向到另一个页面,它只是显示了错误的内容!

我已经尝试了以下事情:

  • 我将 Controller + action 添加到nonCacheableControllerActions (问题再次发生在一天后)
  • 在URL中添加?no_cache=1 (问题解决,但页面速度降低)
  • 清除缓存(问题解决,不管清除什么缓存。但问题又出现了一天)
  • 我写了一个脚本,每隔几分钟调用一次页面,这似乎解决了这个问题。

有没有其他人有同样的问题?

规格:

  • TYPO3 版本: 7.6.22
  • 真实网址版本: 2.2.1

这些缓存问题通常是由于 cHash 错误或丢失而发生的。

您可以使用$GLOBALS['TSFE']→reqCHash(); 在您的控制器的操作中。 如果未设置 cHash,这将禁用缓存,因此确保您不会获得不正确的缓存条目。 请注意:如果您在系统设置中设置 [pageNotFoundOnCHashError] = 1,当在没有 cHash 的情况下调用页面时,您将收到页面未找到错误,如果设置为 0,页面仍将显示但不会缓存。


以下信息可能已过时,请参阅下面的 moe2k 回答以获取更多最新信息。

或者,有一个系统参数“[FE][cHashRequiredParameters]” - 您可以在那里添加您的插件参数。 如果没有给出 cHash 但设置了其中一个参数,则 TYPO3 会触发配置的 cHash 错误行为。 我相信 cHashes 然后会自动设置为拼写链接,您可以尝试看看。 如果它们不是自动设置的,您应该在指向 show 操作的链接上设置“useCacheHash = 1”。

我更喜欢 & 使用第一个变体。

尝试将插件定义为 USER_INT。 plugin.tx_yourextkey = USER_INT

这将告诉 TYPO3 为每个请求呈现代码。

最佳实践是 showAction 的第二个页面,并且仅在 single_view 页面上,将插件定义为 USER_INT。

但是如果你有两个页面,你应该不会遇到这个问题。 并且不需要 USER_INT 设置。

从 TYPO3 v9 开始,请使用以下内容:

$TYPO3_CONF_VARS['FE']['cacheHash']['requireCacheHashPresenceParameters']

使用数组作为值而不是

$TYPO3_CONF_VARS['FE']['cacheHash']['cHashRequiredParameters']

用逗号分隔的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM