【问题标题】:How to refresh a cached Drupal page?如何刷新缓存的 Drupal 页面?
【发布时间】:2011-04-11 11:29:12
【问题描述】:

是否可以让 Drupal 刷新一个特定的缓存页面?

目前,我们网站的一页显示Table Wizard 的一些动态表格数据。在 MySQL 表中进行一些更新后,页面不新鲜。

我认为这是由于站点缓存已打开(缓存模式设置为:正常)。对于匿名用户,页面刷新会在 60 分钟后进行。

有没有办法让 Drupal 只刷新一个页面,而不是清除整个站点的缓存?谢谢!

【问题讨论】:

    标签: drupal drupal-cache


    【解决方案1】:

    “让 Drupal 刷新一个特定的”页面的一种方法是将其保留在缓存之外。

    cacheexclude 模块就是为此而设计的。只需告诉它您希望保留在缓存之外的页面即可。

    如果不想安装其他模块,可以覆盖 hook_init():

    mymodule_init() {
      $path = drupal_get_path_alias(request_uri());
      if ($path == "<do not cache path>") {
        $GLOBALS['conf']['cache'] = FALSE;
      }
    }
    

    【讨论】:

    • 如果页面已经在缓存中,这是否可以在 hook_init 中工作?我认为如果页面已经在缓存中,则永远不会调用 hook_init。如果我是正确的,hook_boot 可能是一个更好的地方,如果必须仅针对基于某些逻辑条件的某些请求禁用从缓存提供服务。
    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 2011-01-22
    • 2014-12-29
    • 1970-01-01
    • 2015-07-16
    • 2011-05-11
    • 1970-01-01
    • 2017-05-24
    相关资源
    最近更新 更多