¿Cómo forzar la regeneración de plantillas Twig?

8

Twig genera clases para sus plantillas. Estas clases son efectivamente cachés al ser escritas en el disco.

En términos generales, probablemente no sea necesario molestarse con los detalles de cómo se manejan las plantillas de ramita, pero podría haber casos en los que las plantillas de Ramita se deben volver a generar manualmente. (Similar a la necesidad del módulo de reconstrucción del Registro en D7)

Si es relevante, pregunto porque estoy atrapado con un error que se parece a esto:

Error grave: la clase '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' no se encuentra en core / lib / Drupal / Core / Template / TwigEnvironment.php en la línea 107

Letharion
fuente

Respuestas:

6

No estoy seguro de por qué obtiene ese error específico, pero eche un vistazo a drupal_flush_all_caches (), que hace

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

Dicho esto, no estoy seguro de si esto resolverá su problema, ya que nunca he visto ese error, no estoy seguro de cómo podría terminar esperando una clase que no está allí.

Berdir
fuente
Es interesante que digas que nunca lo has visto, como también lo he visto antes. Luego, simplemente reinstalé, y funcionó. Ahora ni siquiera eso ayuda.
Letharion
2
En este caso, resultó ser una mala propiedad del archivo de configuración ... Gracias por el útil mensaje de error Drupal;)
Letharion
1
En mi caso, los permisos de la carpeta de archivos públicos no se configuraron correctamente. Instalé el sitio web usando drush, que en mi entorno local es un usuario diferente al usuario del servidor web. La solución fue ajustar los permisos de la carpeta.
batigolix
1
Vía drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim
1

Estaba viendo este error Twig en mi registro de errores, cuando intentaba acceder a un sitio Drupal 8.x después de haber sido instalado con drush con drush si --db-url=mysql://root:root@localhost/mysite -y. Entonces, para corregir el problema, nuevamente con drush, simplemente borre el caché:

drush cr all 

Además, después de esto, si su nuevo sitio Drupal 8.x no parece tener ningún estilo CSS, entonces esto probablemente se deba a que el usuario apache / httpd no tiene permisos de escritura en los sitios / archivos predeterminados / archivos.

alexkb
fuente