我刚从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只理解命名空间的包名而不理解全名?
我错过了什么在小枝配置?我正在运行PHP 5.3.3。
找到了根本原因。在控制台中,我从webapp用户没有读取权限的路径调用php app/console cache:clear
。因为twig缓存了一些包含这些绝对路径的配置文件,所以当它作为webuser执行时无法读取模板。