如何在Drupal中调试缓存?

时间:2012-08-01 17:25:58

标签: php caching drupal-7

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

缓存的块在hook_block_info

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

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

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

1 个答案:

答案 0 :(得分:0)

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

此外,如果您使用的是启用了缓存的代理服务器,请让管理员将您的网站排除在缓存之外。

更新09:36 GMT-6 20120804:

好的,所以没有APC缓存... 我知道它很脏,但你可以grep网站(或至少你的主题/模块文件夹)“product-info-block”或者一些显示块时显示的文本。块可能存储在插件模块或主题中。

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