错误的TYPO3页面缓存

时间:2017-09-25 14:12:38

标签: php caching typo3 realurl

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

例如,如果用户调用以下页面:/products/(默认控制器ProductControllerlistAction),TYPO3会显示随机控制器的内容以及相同插件的操作页面(例如ApplicationControllershowAction)。 本网站不会重定向到另一个页面,它只是显示错误的内容!

我已经尝试过以下事项:

  • 我将Controller +操作添加到nonCacheableControllerActions(问题再次发生一天)
  • 向网址添加?no_cache=1(问题已解决,但网页速度降低)
  • 清除缓存(问题已解决,无论清除什么缓存。但问题会在一天之后再次发生)
  • 我写了一个脚本,每隔几分钟调用一次这个页面似乎解决了这个问题。

其他人是否有同样的问题?

规格:

  • TYPO3版本:7.6.22
  • realurl版本:2.2.1

3 个答案:

答案 0 :(得分:1)

那些缓存问题通常是由于错误或缺少cHash。

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

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

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

答案 1 :(得分:0)

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

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

最佳做法是showAction的第二页,只有在single_view页面上,才能将插件定义为USER_INT。

但是你有两页这样你不应该遇到这个问题。并且不需要USER_INT设置。

答案 2 :(得分:0)

从TYPO3 v9开始,使用以下命令:

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

使用数组作为值而不是

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

,带有逗号分隔的列表。