我在Drupal 7网站上遇到了一个问题,那里不应缓存不应缓存的块。我该如何调试这类问题?我是否有一种简单的方法可以知道哪个块被缓存以及使用哪个cid?
缓存的块在hook_block_info
:
$blocks['product-info-block'] = array(
'info' => t('Product info'),
'cache' => DRUPAL_NO_CACHE,
);
在数据库中没有这个特定块的痕迹,所以我怀疑它是作为其他东西的一部分进行缓存的,是否有一种简单的方法来解决这个问题?
注意:我没有开发这个,所以我对结构知之甚少,我只是做了一些错误修正。
答案 0 :(得分:0)
检查您的APC缓存。显然,请检查您的本地缓存。
此外,如果您使用的是启用了缓存的代理服务器,请让管理员将您的网站排除在缓存之外。
更新09:36 GMT-6 20120804:
好的,所以没有APC缓存... 我知道它很脏,但你可以grep网站(或至少你的主题/模块文件夹)“product-info-block”或者一些显示块时显示的文本。块可能存储在插件模块或主题中。
我还检查您的模块屏幕以查找任何阻止或与性能相关的模块,最后检查您的权限以供匿名和经过身份验证的用户使用。 (例如,块访问模块可能向匿名用户显示缓存块,但是向登录用户显示实时缓存块。这也可以从Drupals缓存中进行,可以在Drupal管理屏幕的Performance部分下配置。 )