我们的drupal站点有一些用户特定的内容.当我们启用页面缓存时,整个页面正在被缓存.是否可以仅缓存页面的片段.或者指定哪些片段不缓存?甚至可以指定哪些页面不缓存.这样我们就可以在登录时从缓存中删除一些东西.或者在登录时不要使用缓存版本.
我找到了这个网站,但它似乎不起作用:http: //www.jpstacey.info/blog/2009/03/03/how-to-not-cache-a-particular-drupal-page
但这似乎不起作用.
亲切的问候,大安
首先,我第二个Ran Bar-Ziks建议将"不要缓存"的数据放在一个单独的块中并将该块设置为BLOCK_NO_CACHE,因为这是最简单的解决方案.
如果这是不可能的,你可以禁用特定页面的缓存,但是与你发布的链接的建议相反,我这样做是为了防止页面首先被缓存(而不是之后删除缓存条目) .
为此,您可以在相关页面上临时操作全局缓存配置设置:
// Disable caching for this request cycle
$GLOBALS['conf']['cache'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
放置此代码的位置取决于您要从缓存中排除的页面:
hook_view.hook_nodeapi().**如果在禁用缓存之前添加对节点标识的检查,这也适用于单个节点.hook_init()实现中,检查路径(或路径别名)以决定是否禁用缓存.显而易见的是,您需要首先清除缓存中的任何一种方法,因为它们依赖于防止页面被缓存.它们不会从缓存中删除已分页的条目.