2

我在 Drupal 7 网站上有一个问题,其中不应该缓存的块正在被缓存。如何调试此类问题?我是否有一种简单的方法可以知道哪个块正在被缓存以及使用哪个 cid?

被缓存的块是这样定义的hook_block_info

$blocks['product-info-block'] = array(
  'info' => t('Product info'),
  'cache' => DRUPAL_NO_CACHE,
);

在数据库中没有这个特定块的痕迹,所以我怀疑它被缓存为其他东西的一部分,有没有简单的方法来解决这个问题?

注意:我没有开发这个,所以我对结构知之甚少,我只是在做一些错误修复。

4

1 回答 1

0

检查您的 APC 缓存。显然,检查您的本地缓存。

此外,如果您使用启用了缓存的代理服务器,请让管理员将您的站点从缓存中排除。

更新 09:36 GMT-6 20120804:

好的,所以没有 APC 缓存...我知道它很脏,但是您可以在站点(或至少您的主题/模块文件夹)中查找“产品信息块”或显示块时显示的某些文本. 该块可能存储在插件模块或主题中。

我还会检查您的模块屏幕是否有任何与块或性能相关的模块,最后检查您对匿名和经过身份验证的用户的权限。(例如,块访问模块可能向匿名用户显示缓存块,但向登录用户显示实时块。这也发生在 Drupal 的缓存中,可以在 Drupal 管理屏幕的性能部分下进行配置。)

于 2012-08-02T14:38:44.130 回答