【问题标题】:Drupal 7 Caching configuration not workingDrupal 7缓存配置不起作用
【发布时间】:2015-12-05 16:13:35
【问题描述】:

我有一个在 Drupal 7 上运行的网站。 我在整个网站上出现了各种块,其中包含:

  • PHP 代码
  • 观看次数

在配置下 -> 开发两个缓存选项都未选中:

  • 未选中匿名用户的缓存页面
  • 缓存块未选中

所有包含视图的块都不会为经过身份验证和匿名的用户缓存(即每个页面请求都会在块中产生新的结果)。 所有包含 PHP 代码的块都为每个人缓存(即每次页面刷新都使用缓存的数据并且不执行 PHP 代码)。这些块重新运行 PHP 代码的唯一方法是清除页面缓存。

我的问题如下:

  1. 配置中的缓存选项不勾选,为什么会从缓存中加载带有PHP代码的块?

  2. 禁用所有区块兑现的最有效方法是什么?

*请注意,我不想使用 Javascript/jQuery/Ajax 来代替 PHP。

【问题讨论】:

    标签: caching drupal


    【解决方案1】:

    嗯,这可能是 php 过滤器的问题(可能在某些较旧的 drupal 7 版本中,不知道在较新的版本中是否也会发生这种情况)在 filter_format 表中设置了缓存。你可以在这里有更好的描述:https://www.drupal.org/node/1424698#comment-8719155

    如果这能解决问题,我实际上建议实现 hook_filter_info_alter():https://api.drupal.org/api/drupal/modules!filter!filter.api.php/function/hook_filter_info_alter/7 并将 php_code 过滤器的缓存设置为 FALSE:

    if (!empty($info['php_code'])) {
     $info['php_code']['cache'] = FALSE;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      相关资源
      最近更新 更多