Come forzare la rigenerazione dei template di Twig?


8

Twig genera classi per i suoi modelli. Queste classi sono effettivamente cache, essendo scritte su disco.

In generale, probabilmente non è necessario preoccuparsi dei dettagli su come vengono gestiti i modelli di ramoscello, ma potrebbero esserci casi in cui i modelli di ramoscello devono essere rigenerati manualmente. (Simile alla necessità del modulo di ricostruzione del Registro di sistema in D7)

Se è pertinente, lo sto chiedendo perché sono bloccato con un errore simile al seguente:

Errore irreversibile: classe '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' non trovata in core / lib / Drupal / Core / Template / TwigEnvironment.php sulla linea 107

Risposte:


6

Non sono sicuro del motivo per cui ricevi questo specifico errore, ma dai un'occhiata a drupal_flush_all_caches (), che

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

Detto questo, non sono sicuro se questo risolverà il tuo problema, poiché non ho mai visto quell'errore, non sono sicuro di come potrebbe finire per aspettarsi una classe che non c'è.


Interessante che tu dica di non averlo mai visto, come ho già visto prima. Quindi ho appena reinstallato, e ha funzionato. Ora nemmeno questo aiuta.
Letharion,

2
In questo caso, si è rivelata una cattiva proprietà del file delle impostazioni ... Grazie per l'utile messaggio di errore Drupal;)
Letharion

1
Nel mio caso sono state le autorizzazioni della cartella dei file pubblici che non sono state impostate correttamente. Ho installato il sito Web usando drush, che nel mio ambiente locale è un utente diverso rispetto all'utente del web server. La soluzione consisteva nel regolare i permessi delle cartelle.
Batigolix,

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

1

Stavo vedendo questo errore di Twig nel mio registro degli errori, quando ho tentato di accedere a un sito Drupal 8.x dopo che era stato installato con drush con drush si --db-url=mysql://root:root@localhost/mysite -y. Quindi, per correggere il problema, sempre con Drush, è sufficiente cancellare la cache:

drush cr all 

Inoltre, dopo questo, se il tuo nuovo sito Drupal 8.x non sembra avere alcun stile CSS, ciò è probabilmente dovuto al fatto che l'utente apache / httpd non ha i permessi di scrittura su siti / default / file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.