Wie erzwinge ich die Regeneration von Twig-Vorlagen?

8

Twig generiert Klassen für seine Vorlagen. Diese Klassen sind effektiv Caches, indem sie auf eine Disc geschrieben werden.

Im Allgemeinen muss man sich wahrscheinlich nicht um die Details des Umgangs mit den Zweigvorlagen kümmern, aber es kann Fälle geben, in denen die Zweigvorlagen manuell neu generiert werden müssen. (Ähnlich wie für das Registrierungs-Wiederherstellungsmodul in D7)

Wenn es relevant ist, frage ich, weil ich mit einem Fehler feststecke, der so aussieht:

Schwerwiegender Fehler: Klasse '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' nicht in core / lib / Drupal / Core / Template / TwigEnvironment.php in Zeile 107 gefunden

Letharion
quelle

Antworten:

6

Ich bin mir nicht sicher, warum Sie diesen speziellen Fehler erhalten, aber schauen Sie sich drupal_flush_all_caches () an

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

Trotzdem bin ich mir nicht sicher, ob dies Ihr Problem lösen wird, da ich diesen Fehler noch nie gesehen habe und nicht sicher bin, wie er eine Klasse erwarten könnte, die nicht da ist.

Berdir
quelle
Interessant, dass Sie sagen, Sie haben es noch nie gesehen, so wie ich es auch schon gesehen habe. Dann habe ich es einfach neu installiert und es hat funktioniert. Jetzt hilft nicht einmal das.
Letharion
2
In diesem Fall stellte sich heraus, dass dies ein schlechter Besitz der Einstellungsdatei war ... Vielen Dank für die hilfreiche Fehlermeldung Drupal;)
Letharion
1
In meinem Fall wurden die Berechtigungen des Ordners für öffentliche Dateien nicht richtig festgelegt. Ich habe die Website mit drush installiert, das in meiner lokalen Umgebung ein anderer Benutzer als der Webserver-Benutzer ist. Die Lösung bestand darin, die Ordnerberechtigungen anzupassen.
Batigolix
1
Über Drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim
1

Ich habe diesen Twig-Fehler in meinem Fehlerprotokoll gesehen, als ich versucht habe, auf eine Drupal 8.x-Site zuzugreifen, nachdem sie mit drush with installiert wurde drush si --db-url=mysql://root:root@localhost/mysite -y. Um das Problem erneut mit Drush zu beheben, leeren Sie einfach den Cache:

drush cr all 

Wenn Ihre neue Drupal 8.x-Site danach keine CSS-Stile mehr zu haben scheint, liegt dies wahrscheinlich daran, dass der Apache / httpd-Benutzer keine Schreibberechtigungen für Sites / Standard / Dateien hat.

alexkb
quelle