【问题标题】:wrong content is cached缓存了错误的内容
【发布时间】:2017-06-12 09:50:39
【问题描述】:

我们的网站有时会为特定网址提供错误的内容。
该页面有一个插件,默认情况下应显示记录列表(或第一个记录列表,因为列表按首字母分组)。单击链接后,可以在同一页面上详细查看一些记录。

时不时会出现缓存问题: 显示的是详细记录,而不是列表。

虽然我们使用 realurl,但基本 url 也会出现所有问题。
为了概述,我只会写 url 参数,假设前面是www.domain.tld/index.php?

要调用的页面是id=61
我看到的是
cHash=3df3421afc42d3d5bfa1bc50603ea00d&id=61&tx_citkoegovservicelight_ansprechpartner%5Baction%5D=show&tx_citkoegovservicelight_ansprechpartner%5Bansprechpartner%5D=282

在页面的 HTML 源代码中,我显示了扩展名为 page_params 的页面调用参数。我看到了:
tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61

两个奇怪的注释:没有 cHash 参数,还有一个附加参数 tx_citkoegovservicelight_ansprechpartner[letter],它永远不应该与详细视图一起使用,也不应该有值 kontakt(仅使用单个字符来列出所有记录以那个字母开头 = 没有详细视图)

使用这些参数不会显示详细视图,而是显示列表视图(对于字母“A”)。

我找不到应该调用这个特殊 URL 的原因(没有链接),我不知道为什么 TYPO3 应该缓存属于另一个 URL 的内容。
这是 TYPO3 缓存的问题,因为如果我清除此单个页面的缓存,一切正常。

【问题讨论】:

  • 我知道来自自定义 extbase 扩展的问题 Instead of the listing a detailed record is shown。经过几个月的拼命摆弄(以及难以重现,因为它不会立即发生),我已经切换到使用单独的页面来显示列表和详细信息,这对于 URL 路径和更多的设置工作感到遗憾BE——但从那以后,错误(当然)消失了。

标签: typo3 typo3-7.6.x


【解决方案1】:

请检查我对另一个 issue 的回答。在这种情况下,接受的答案是正确的,但在您的情况下,它确实可能是由 cHash 计算失败引起的,因为它与 RealURL 无关。

尝试清除缓存,然后立即转到tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61

然后只需打开页面id=61。如果您看到错误的缓存结果,那么原因是以下因素的组合:

  • 插件的动作被缓存
  • 安装时允许缓存失败
  • cHash 计算失败

为防止这种情况,您应该在安装工具中启用pageNotFoundOnCHashError。那么上面有问题的链接只会触发404,不会强制TYPO3渲染页面。

关于链接来自哪里的问题。如果网站已经上线,它可以是一切:从以某种方式自行构建链接的爬虫到尝试使用参数的用户。

【讨论】:

  • Plugin's action is cached 是,Cache fails are allowed in installation 不是,cHash calculation failed 似乎是这样。
  • 所以,pageNotFoundOnCHashError 已启用,但是当您调用 tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61 时,您会看到插件输出而不是 404?
  • 是的。清除缓存后,我看到了记录详细信息视图。问题可能是附加参数(字母)是有效参数,但在详细视图(仅列表视图)中无效。仍然没有 chash。
  • @BerndWilkeπφ 如果仍然相关,只是在我们客户的一个网站中发现了类似问题。有什么帮助 - 将 [FE][cHashRequiredParameters] 设置为 tx_citkoegovservicelight_ansprechpartner[ansprechpartner]。这将强制 TYPO3 检查所有具有此参数的链接的 cHash。如果不存在 cHash 或它是错误的,将触发“未找到”行为,阻止页面存储在 TYPO3 缓存中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 2012-06-22
相关资源
最近更新 更多