2

Drupal 7 の Web サイトで、キャッシュすべきでないブロックがキャッシュされるという問題があります。この種の問題をデバッグするにはどうすればよいですか? どのブロックがどの cid でキャッシュされているかを簡単に知る方法はありますか?

キャッシュされるブロックは、 で次のように定義されますhook_block_info

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

DB にはこの特定のブロックの痕跡がないため、他のブロックの一部としてキャッシュされていると思われます。簡単に特定する方法はありますか?

注: 私はこれを開発していないので、構造についてはほとんど何も知りません。いくつかのバグ修正を行っているだけです。

4

1 に答える 1

0

APC キャッシュを確認します。そして明らかに、ローカルキャッシュを確認してください。

また、キャッシュが有効になっているプロキシ サーバーを使用している場合は、サイトをキャッシュから除外するよう管理者に依頼してください。

更新 09:36 GMT-6 20120804:

さて、APCキャッシュはありません...汚れていることはわかっていますが、サイト(または少なくともテーマ/モジュールフォルダー)で「product-info-block」またはブロックが表示されたときに表示されるテキストの一部をgrepできます. ブロックがアドオン モジュールまたはテーマに格納されている可能性があります。

また、モジュール画面でブロックまたはパフォーマンス関連のモジュールを確認し、最後に匿名ユーザーと認証済みユーザーのアクセス許可を確認します。(たとえば、ブロック アクセス モジュールは、キャッシュされたブロックを匿名ユーザーに表示し、ライブ ブロックをログイン ユーザーに表示することができます。これは、Drupal 管理画面の [パフォーマンス] セクションで構成できる Drupal のキャッシュからも発生します。)

于 2012-08-02T14:38:44.130 に答える