gpt4 book ai didi

Drupal + 页面片段缓存

转载 作者:行者123 更新时间:2023-12-04 23:09:25 25 4
gpt4 key购买 nike

我们的 drupal 站点有一些用户特定的内容。当我们启用页面缓存时,整个页面都会被缓存。是不是可以只缓存页面的片段。或者指定不缓存哪些片段?甚至指定不缓存哪些页面。这样我们可以在登录时从缓存中删除一些东西。或者登录时不要使用缓存的版本。

我已经找到了这个网站,但它似乎不起作用:
http://www.jpstacey.info/blog/2009/03/03/how-to-not-cache-a-particular-drupal-page

但这似乎不起作用。

亲切的问候,
大安

最佳答案

首先,我第二次 Ran Bar-Ziks 建议将“不被缓存”的数据放在一个单独的 block 中,并将该 block 设置为 BLOCK_NO_CACHE ,因为它是最简单的解决方案。

如果这不可能,您可以禁用特定页面的缓存,但与您发布的链接的建议相反,我会通过防止页面首先被缓存来做到这一点(而不是之后删除缓存条目) .

为此,您可以在相关页面上临时操作全局缓存配置设置:

// Disable caching for this request cycle
$GLOBALS['conf']['cache'] = FALSE;

您放置此代码的位置取决于您要从缓存中排除的页面:
  • 如果它是来自您自己的模块的自定义节点类型,您可以将其放入 hook_view .
  • 如果要对来自其他模块的节点类型执行此操作,可以将其放在 hook_nodeapi() 上的“查看”操作部分中。执行。
    ** 如果您在禁用缓存之前添加对节点 ID 的检查,这也适用于单个节点。
  • 如果您需要根据路径执行此操作,可以将其放入 hook_init()实现,检查路径(或路径别名)以决定是否禁用缓存。

  • 很明显,您需要首先清除缓存才能使这些方法中的任何一种工作,因为它们依赖于阻止页面被缓存。他们不会从缓存中删除已经分页的条目。

    关于Drupal + 页面片段缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4205981/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com