Как форсировать регенерацию шаблонов Twig?


8

Twig генерирует классы для своих шаблонов. Эти классы эффективно кэшируются при записи на диск.

Вообще говоря, вероятно, не нужно беспокоиться о деталях того, как обрабатываются шаблоны веток, но могут быть случаи, когда шаблоны Twig должны быть заново сгенерированы вручную. (Аналогично необходимости в модуле перестройки реестра в D7)

Если это актуально, я спрашиваю, потому что я застрял с ошибкой, которая выглядит следующим образом:

Неустранимая ошибка: класс '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' не найден в файле core / lib / Drupal / Core / Template / TwigEnvironment.php в строке 107

Ответы:


6

Не уверен, почему вы получаете эту конкретную ошибку, но посмотрите на drupal_flush_all_caches (), которая делает

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

Тем не менее, я не уверен, что это решит вашу проблему, так как я никогда не видел эту ошибку, не уверен, как это могло бы в конечном итоге ожидать, что класс не существует.


Интересно, что вы говорите, что никогда этого не видели, как я видел и раньше. Затем я просто переустановил, и это сработало. Теперь даже это не помогает.
Летарион

2
В этом случае это оказалось плохим владельцем файла настроек ... Спасибо за полезное сообщение об ошибке Drupal;)
Letharion

1
В моем случае это были права доступа к папке с общими файлами, которые не были установлены правильно. Я установил веб-сайт с помощью drush, который в моей локальной среде отличается от пользователя веб-сервера. Решением было настроить права доступа к папке.
Batigolix

1
Via drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Тим

1

Я видел эту ошибку Twig в моем журнале ошибок, когда пытался получить доступ к сайту Drupal 8.x после того, как он был установлен с помощью drush with drush si --db-url=mysql://root:root@localhost/mysite -y. Итак, чтобы исправить проблему, снова с помощью drush, просто очистите кеш:

drush cr all 

Кроме того, после этого, если ваш новый сайт Drupal 8.x не имеет каких-либо стилей CSS, вероятно, это связано с тем, что у пользователя apache / httpd нет прав на запись на сайты / default / files.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.