開発のためにTwigキャッシングを本当に無効にするにはどうすればよいですか?[閉まっている]


7

Twigキャッシングを無効にするために、次の手順に従いました。

  1. sites / example.settings.local.phpをコピーして名前を変更し、sites / default / settings.local.phpに変更します。

    $ cp sites/example.settings.local.php sites/default/settings.local.php
  2. sites / defaultでsettings.phpファイルを開き、次の行のコメントを外します。

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

    これには、Drupalの設定ファイルの一部としてローカル設定ファイルが含まれます。

  3. settings.local.phpを開き、TRUEに変更します

    $config['system.performance']['css']['preprocess'] = FALSE;
    $config['system.performance']['js']['preprocess'] = FALSE;
  4. これらの行のsettings.local.phpのコメントを外して、レンダリングキャッシュを無効にし、動的ページキャッシュを無効にします。

    $settings['cache']['bins']['render'] = 'cache.backend.null';
    $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; 

    テストモジュールとテーマをインストールしない場合は、以下をFALSEに設定します

    $settings['extension_discovery_scan_tests'] = TRUE;
  5. sitesフォルダーのdevelopment.services.ymlを開き、次のブロックを追加します(twigキャッシュを無効にするため)。

    parameters:   
      twig.config:
        debug : true
        auto_reload: true
        cache: false

私はダブルチェックとトリプルチェックを行い、すべての変更が上記に従って正しく適用されています。しかし、何も変更されていません。テンプレートファイルに変更を加えるたびに、キャッシュを再構築してフロントエンドに表示する必要があります。

それでは、contribまたはカスタムモジュールがインストールされていないDrupal 8.0.1のストックインストールでTwigキャッシングを無効にする正しい手順は何ですか?


パフォーマンス設定を確認しましたか?インストールごとにデフォルトでキャッシュが有効化されていました...
Volker

@Volkerに感謝します。これが最初に確認した場所です-集約はオンになっていますが、キャッシュはオンとオフになっています(aggもオフになり、キャッシュが再構築されました)
Clive

1
この状況で役立つかどうかは100%わかりませんが、ローカルのAPCまたはOpCacheが無効になっていることを確認するか、毎回再スキャンするように設定しています。
mpdonadio

奇妙なことに、これは間違いなく機能するはずです。まず、それが正確にどのキャッシュであるかを理解します。テンプレートの変更について言及しましたが、hook _ * _ view()またはレンダリングキャッシュされているPHPの他の場所で何かを変更すると、更新されますか?コンパイルしたコンテナの実際の設定をでダンプしてみてくださいdrush ev "var_dump(\Drupal::getContainer()->getParameter('twig.config'))"。services.ymlインクルードの順序が正しいことを確認してください。
Berdir

@Berdirは問題を引き起こしていたパイプラインをダウンしている何かであることが判明しました、ドキュメントは次の場所にあります
Clive

回答:


1

自動リロードはnullである必要があり、デバッグを有効にするとtwigコンパイルが切り替わります。

auto_reload: null

twigデバッグを有効にする最も簡単な方法は、コピーdefault.services.ymlservices.ymlて設定しdebug: truecache: false

これを確認できます。コンパイル済みの小枝を見ると、小枝のデバッグをオンにすると、このディレクトリが表示されなくなります。

/sites/default/files/php/twig

私の開発設定を、推奨される場所であるdevelopment.services.ymlに保持します。これは、sites / default / local.settings.php(次に通常のsettings.phpに含まれています)に含まれています。それは不可能であり、代わりに本番設定ファイルを使用するべきですか?変更auto_reloadしても残念ながら違いはありませんでした
Clive

default.services.tmlをservices.ymlにコピーしてみて、提案された変更を加え、キャッシュを再構築しました-違いはありません。twigテンプレートを変更するたびにキャッシュを再構築する必要があります。とにかくありがとう
クライヴ

私はこれを何十回も実行し、twigデバッグのオンとオフを切り替えましたが、問題は一度もありませんでした。これは非常に奇妙です。ブラウザでソースを表示すると、デバッグコメントが表示されますか?(および追加情報については回答を参照してください)
4k4

それは奇妙な@ 4k4 :)私はこれを以前にやったことがあり、問題もありませんでした。なぜこのサイトで突然開始されたのかわかりません。会議中ですが、後で他の提案を試します
Clive

問題は、実際の問題を隠していたローカルマシン上のものの組み合わせであることがわかりました。時間を無駄にして申し訳ありません。返信をありがとう
クライヴ

0
  1. sites / example.settings.local.phpをコピーして名前を変更し、sites / default / settings.local.phpに変更します。

    $ cp sites/example.settings.local.php sites/default/settings.local.php
  2. sites / defaultでsettings.phpファイルを開き、次の行のコメントを外します。

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

    これには、Drupalの設定ファイルの一部としてローカル設定ファイルが含まれます。

  3. settings.local.phpを開き、TRUEに変更します

    $config['system.performance']['css']['preprocess'] = FALSE;
    $config['system.performance']['js']['preprocess'] = FALSE;
  4. これらの行のsettings.local.phpのコメントを外して、レンダリングキャッシュを無効にし、動的ページキャッシュを無効にします。

    $settings['cache']['bins']['render'] = 'cache.backend.null';
    $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; 

    テストモジュールとテーマをインストールしない場合は、以下をFALSEに設定します

    $settings['extension_discovery_scan_tests'] = TRUE;
  5. sitesフォルダーのdevelopment.services.ymlを開き、次のブロックを追加します(twigキャッシュを無効にするため)。

    parameters:   
      twig.config:
        debug : true
        auto_reload: true
        cache: false

これらの手順を完了したら、settings.phpにこの2行を追加して、キャッシュをクリアします。

$ settings ['container_yamls'] [] = DRUPAL_ROOT。'/sites/development.services.yml';

$ settings ['container_yamls'] [] = DRUPAL_ROOT。'/sites/development.services.yml';

それは私の同僚のために働いた。それがあなたのために働くことを願っています。


ありがとう、私も試しましたが違いはありません。page.html.twigで何かを変更するたびにキャッシュをクリアする必要があります
Clive

問題は、実際の問題を隠していたローカルマシン上のものの組み合わせであることがわかりました。時間を無駄にして申し訳ありません。返信をありがとう
クライヴ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.