キャッシュを完全にオフにする方法は?


26

Drupal 7でサイトを開発していますが、キャッシュにより作業が大幅に遅くなります。たとえば、フォームのテーマ機能がありました。私は戸惑いました、なぜうまくいかないのですか。キャッシュをクリアして修正されるまで。

完全にオフにする方法は?

回答:


21

テーマ関数はテーマレジストリによって処理されます。新しいテーマ関数を取得するためにサイトのすべてのキャッシュを再構築(またはさらに悪いことに無効化)することは不要であり、やり過ぎです。

できることは、Develモジュールを使用して、ページをリロードするたびにテーマのレジストリを再構築することです。インストールしたら、設定→開発→開発設定に進みます。そこで、「ページを読み込むたびにテーマレジストリを再構築する」をチェックし、「設定を保存」ボタンを押します。開発が完了したら、忘れずにチェックを外してください(または、Develを完全に無効にしてください)。


ただし、これはテーマレジストリのみです。
アンドリューウェルチ

2
問題は、「完全にオフにする方法」です。これはそれの一部でしかありません
SeanJA

29

デフォルトのキャッシュバックエンドを実際には何もしないものに置き換えることができます。これをsettings.phpファイルに追加するだけです:

if (!class_exists('DrupalFakeCache')) {
  $conf['cache_backends'][] = 'includes/cache-install.inc';
}
// Default to throwing away cache data.
$conf['cache_default_class'] = 'DrupalFakeCache';
// Rely on the DB cache for form caching - otherwise forms fail.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

念のため、[パフォーマンス]ページでキャッシュの有効期限を[なし]に設定します。

実際、これをsettings.local.phpファイルで使用します。このファイルが存在する場合は、settings.phpファイルの下部に含まれるため、ライブまたはステージング環境のdev.phpを開発環境に同期することができます。間違ったデータベース設定の使用、誤ってdev設定をプッシュするなど

settings.php:

if (file_exists(__DIR__ . '/settings.local.php')) {
  require_once __DIR__ . '/settings.local.php';
}

4
同じトリックを使用して、ビンごとのキャッシュをオフにすることができます。例えば。$conf['cache_class_cache_metatag'] = 'DrupalFakeCache';
アルフレッドアームストロング

4
受け入れられた答えは、すべてのキャッシュではなくテーマレジストリキャッシュを無効にする方法のみを説明しているため、受け入れられた答えである必要があります
-mastazi

10

すべてのキャッシュを完全にオフにすることはできません。あなたが実際にやったなら、それはあなたの進歩を遅らせることになるので、はるかに。それが実際にキャッシュをクリアするのにかかる時間を考慮して、だと何を、すべて単一のページのロードは次のようになります。

利用可能なエンティティ、フィールド、フォーム、実装されたフックなどに関する情報を構築するために実行中のフックは非常に多く、現在一度だけ実行する必要があるため、それを防止したくありません。

Drupalに慣れると、すぐにキャッシュクリアが必要なものを学習し、おそらく管理メニューのショートカットまたはのいずれかに慣れるでしょうdrush cc all。これはもはや問題ではありません。


ほとんどの新しいフックは、そこからのスムーズな航行が認められる前にキャッシュをクリアする必要があることに気づいたら同意します!:)
アレックスウェーバー

2
正直なところ、数か月のDrupal開発の後、私はまだこれが問題だと感じています。ローカルでの速度の向上は重要ではありませんが、同時に複数のユーザーがリクエストを送信することはありません。ローカルでの開発中にキャッシュを無効にする他のほとんどのフレームワーク(Django、Symfonyなど)では、すぐに利用できるオプションですが、Drupalでもそれができない理由はわかりません。毎日、何かが機能していないインスタンスが少なくとも1つあります。その理由は、キャッシュを消去するのを忘れたためです。それは頻繁に発生し、本当に気になります。
マスタジ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.