【问题标题】:Setting a ruleset for @@search in Plone plone.app.caching在 Plone plone.app.caching 中为 @@search 设置规则集
【发布时间】:2025-12-04 22:50:02
【问题描述】:

我正在使用 Varnish 强化我的网站,并且 plone.app.caching 运行良好,除了每个页面请求都是对 /@@search 的额外请求?

问题是@@search 总是进入后端(当我跟踪 z2.log 时似乎如此)。

我可以看到它正在获取一个设置为 2000 年 1 月 1 日的过期标头...没有猴子修补 plone.app.caching 我如何才能阻止这个请求如此多地进入后端?

我不希望为@@search 编写清漆 vcl 规则,而是使用 plone.app.caching UI 来实现这一点...

【问题讨论】:

  • 除了缓存问题,你有没有弄清楚是什么导致了 /@@search 对其他请求的请求?这似乎很奇怪。
  • 不,我想可能是作为主 Plone 模板的一部分的宏或 ajax 请求?它发生在每个页面上,其中一些是自定义类型,其中一些是沼泽标准 Plone 页面类型。我注意到它的唯一原因是它意外地抓住了一个总是去后端的清漆规则......

标签: caching plone varnish


【解决方案1】:

正如我在 IRC 中告诉你的,你需要一个 cache:ruleset 指令。

  <cache:ruleset
      for="plone.app.search.browser.Search"
      ruleset="plone.app.caching.moderateCaching"
      />

【讨论】:

  • 谢谢 Matthew... 我会按照你的建议为它添加一个特定的规则集。我猜在标准功能环境中,它只会拾取“strongCaching”而不打到后端,即不需要规则......我们配置中的问题是一个狡猾的清漆规则,它将任何没有特别设置的东西直接发送到后端。
  • 我不知道这个浏览器视图的默认设置是什么,但我认为它应该添加一个规则,以便可以在控制面板中配置这些东西。