【发布时间】:2011-04-11 11:29:12
【问题描述】:
是否可以让 Drupal 刷新一个特定的缓存页面?
目前,我们网站的一页显示Table Wizard 的一些动态表格数据。在 MySQL 表中进行一些更新后,页面不新鲜。
我认为这是由于站点缓存已打开(缓存模式设置为:正常)。对于匿名用户,页面刷新会在 60 分钟后进行。
有没有办法让 Drupal 只刷新一个页面,而不是清除整个站点的缓存?谢谢!
【问题讨论】:
标签: drupal drupal-cache
是否可以让 Drupal 刷新一个特定的缓存页面?
目前,我们网站的一页显示Table Wizard 的一些动态表格数据。在 MySQL 表中进行一些更新后,页面不新鲜。
我认为这是由于站点缓存已打开(缓存模式设置为:正常)。对于匿名用户,页面刷新会在 60 分钟后进行。
有没有办法让 Drupal 只刷新一个页面,而不是清除整个站点的缓存?谢谢!
【问题讨论】:
标签: drupal drupal-cache
“让 Drupal 刷新一个特定的”页面的一种方法是将其保留在缓存之外。
cacheexclude 模块就是为此而设计的。只需告诉它您希望保留在缓存之外的页面即可。
如果不想安装其他模块,可以覆盖 hook_init():
mymodule_init() {
$path = drupal_get_path_alias(request_uri());
if ($path == "<do not cache path>") {
$GLOBALS['conf']['cache'] = FALSE;
}
}
【讨论】:
hook_boot 可能是一个更好的地方,如果必须仅针对基于某些逻辑条件的某些请求禁用从缓存提供服务。