2012-08-01 51 views
2

我有一个Drupal 7网站的问题,在那里不应该被缓存的块得到缓存。我如何调试这类问题?我有一个简单的方法可以知道哪个块缓存了哪些cid?如何在Drupal中调试缓存?

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

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

在DB没有这个特定块的痕迹,所以我怀疑它被缓存为别的部分,有一个简单的方法来弄清楚这一点?

注:我没有开发这个,所以我对结构一无所知,我只是在做一些错误修正。

回答

0

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

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

更新09:36 GMT-6 20120804:

好了,所以没有APC缓存...我知道这是肮脏的,但你可以用grep网站(或者至少你的主题/模块的文件夹)为“product-info-block”或显示块显示时的某些文本。块可能存储在附加模块或主题中。

我也会检查你的模块屏幕任何块或性能相关的模块,最后检查您的权限您的匿名和认证用户。 (例如,一个块访问模块可能会向匿名用户显示一个缓存块,但是用于登录用户的活动缓存块,这也可以从Drupals的缓存中发生,该缓存可以在Drupal管理屏幕的性能部分下配置。)

+0

甚至没有启用APC缓存。 缓存问题不在客户端,但很明显在服务器端,特别是在Drupal中。我和Internet之间没有代理服务器或管理员。 – Kjir 2012-08-02 17:58:07

+0

Gotcha。我会编辑我的答案。 – roberthernandez 2012-08-04 14:36:40