2012-08-01 36 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