如何强制重新生成Twig模板?


8

Twig为其模板生成类。这些类通过写入磁盘来有效地进行缓存。

一般而言,可能不需要理会Twig模板的处理方式的细节,但是在某些情况下,必须手动重新生成Twig模板。(类似于D7中的注册表重建模块的需要)

如果相关,我问是因为我被卡在一个看起来像这样的错误中:

致命错误:在第107行的core / lib / Drupal / Core / Template / TwigEnvironment.php中找不到类'__TwigTemplate_ddad913164239ac659c2bca09b3a49a5'

Answers:


6

不知道为什么会收到该特定错误,但请看一下drupal_flush_all_caches(),

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

就是说,我不确定这是否可以解决您的问题,因为我从未见过该错误,也不确定最终可能会遇到一个不存在的类。


有趣的是,您说过从未见过,就像我以前见过的一样。然后,我只是重新安装了,并且成功了。现在甚至没有帮助。
Letharion

2
在这种情况下,这原来是对设置文件的不良所有权...感谢有用的错误消息Drupal;)
Letharion

1
以我为例,未正确设置公用文件文件夹的权限。我使用drush安装了网站,在我的本地环境中,该用户与Web服务器用户不同。解决方案是调整文件夹权限。
batigolix 2014年

1
赶路: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 cr all 

此外,在此之后,如果您的新Drupal 8.x网站似乎没有任何CSS样式,则可能是由于apache / httpd用户没有对site / default / files的写权限。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.