web-dev-qa-db-ja.com

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

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

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

25
user4035

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

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

22
user7

デフォルトのキャッシュバックエンドを、実際には何もしないものに置き換えることができます。これを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ファイルの下部に含まれるため、心配することなく、ライブ環境またはステージング環境から開発環境にsettings.phpを同期できます。間違ったデータベース設定の使用、誤って開発設定をライブにプッシュすることなどについて.

settings.php:

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

allキャッシュを完全に無効にすることはできません。そして、あなたが実際にそうした場合、それはあなたの進歩を遅くしますsoはるかに。実際にキャッシュをクリアするのにかかる時間を考慮してください。それがevery単一ページのロードのようなものです。

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

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

10
Letharion

この例のアプローチは、バージョンに依存しません。コードはDrupal 7.用です。

https://stackoverflow.com/questions/4436496/drupal-disable-css-cache/41776131#41776131

1