Twigテンプレートの再生成を強制する方法は?


8

Twigはそのテンプレートのクラスを生成します。これらのクラスは、ディスクに書き込まれることにより、事実上キャッシュになります。

一般的に言って、おそらくtwigテンプレートの処理方法の詳細を気にする必要はありませんが、Twigテンプレートを手動で再生成する必要がある場合があります。(D7のレジストリ再構築モジュールの必要性と同様)

それが関連している場合、私は次のようなエラーで立ち往生しているので、私は尋ねています:

致命的なエラー:クラス '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5'が、107行目のcore / lib / Drupal / Core / Template / TwigEnvironment.phpに見つかりません

回答:


6

特定のエラーが発生する理由はわかりませんが、drupal_flush_all_caches()を見てください。

PhpStorageFactory::get('twig')->deleteAll();

とは言っても、これで問題が解決するかどうかはわかりません。そのエラーを見たことがないので、そこにないクラスを予期することになるのかわかりません。


私が以前に見たように、あなたはあなたがそれを見たことがないと言っているのは興味深いです。その後、私は再インストールしましたが、うまくいきました。それでも役に立たない。
Letharion 2013

2
この場合、設定ファイルの所有権が悪いことが判明しました...役立つエラーメッセージをありがとうDrupal;)
Letharion

1
私の場合、正しく設定されなかったのはパブリックファイルフォルダーのアクセス許可でした。私は、drushを使用してWebサイトをインストールしました。これは、私のローカル環境では、Webサーバーのユーザーとは別のユーザーです。解決策は、フォルダーのアクセス許可を調整することでした。
batigolix 2014

1
Drush経由:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim

1

DrushでDrupal 8.xサイトにアクセスしようとしたときにエラーログにこのTwigエラーが表示されましたdrush si --db-url=mysql://root:root@localhost/mysite -y。したがって、問題を修正するには、再度Drushを使用して、キャッシュをクリアします。

drush cr all 

さらに、この後、新しいDrupal 8.xサイトにCSSスタイルがないように見える場合は、おそらく、apache / httpdユーザーがサイト/デフォルト/ファイルへの書き込み権限を持っていないことが原因です。

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