ブロックキャッシュを無効または有効にできないのはなぜですか?


7

このadmin/settings/performanceページでは、私(管理者)はブロックキャッシュを有効または無効にできません。どうして?

回答:


6

その設定についてそのページで報告されているように:

コンテンツアクセス制限を定義するモジュールが有効になっている場合、ブロックキャッシュは非アクティブであることに注意してください。

を実装しているモジュールがある場合hook_node_grants()、「ブロックキャッシュ」フォームフィールドは無効になります。

これは、「パフォーマンス」フォームのフォームビルダーであるsystem_performance_settings()にあるコードです。

$form['block_cache']['block_cache'] = array(
  '#type' => 'radios', 
  '#title' => t('Block cache'), 
  '#default_value' => variable_get('block_cache', CACHE_DISABLED), 
  '#options' => array(
    CACHE_DISABLED => t('Disabled'),
    CACHE_NORMAL => t('Enabled (recommended)'),
  ), 
  '#disabled' => count(module_implements('node_grants')), 
  '#description' => t('Note that block caching is inactive when modules defining content access restrictions are enabled.'),
);

別の方法として、オプションを選択できないようにフォームフィールドを無効にするモジュールが存在する可能性があります。除外できないモジュールがあったとしても、それを効果的に行っているモジュールがあったとしても、私はそれを行うモジュールを知りません。


7

私はあなたが尋ねた知って、「なぜ?」「その問題を回避できます」ではありませんが、を使用するモジュールを削除しなくても、その問題を回避できますhook_node_grants()ブロックキャッシュ変更モジュールを試してください。特に、モジュールがを実装している場合でも、ブロックキャッシュを使用することができますhook_node_grants()


そのモジュールを使用する代わりに$conf['block_cache_bypass_node_grants'] = TRUE;、ブロックで何をしているのかわかっている場合は、まずsettings.phpへの追加を調査する必要があります。
Niall Murphy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.