我只是从Symfony 2.0升级到2.5。我在使用bundle中的控制器渲染模板时遇到问题,我们称之为DemoBundle:
$this->render("AcmeDemoBundle:Index:index.html.twig");
Twig正在寻找AcmeDemoBundle,但只知道名称空间@AcmeDemo
。
因此,当我将控制器代码更改为以下内容时,它可以正常工作:
$this->render("@AcmeDemo/Index/index.html.twig");
为什么twig只了解命名空间的包名而不是全名?
我是否错过了Twig Config中的某些内容?我正在运行PHP 5.3.3。
答案 0 :(得分:0)
找到根本原因。在控制台中,我从webapp用户没有读取权限的路径调用php app/console cache:clear
。因为twig缓存了一些包含这些绝对路径的配置文件,所以当作为webuser执行时,它无法读取模板。