我正在处理一个旧项目,当我使用此路径渲染Twig时:
'MyBundle:Default:_partials:internalSubStatus.html.twig'
这在我的本地计算机(Mac)上工作正常,但在服务器上给出了错误
”无法找到模板 “ MyBundle:Default:_partials:internalSubStatus.html.twig”(调查: / var / www / mylocalpathhere / htdocs / app / Resources / views, / var / www / mylocalpathhere / htdocs / vendor / symfony / symfony / src / Symfony / Bridge / Twig / Resources / views / Form)。“
在以下情况下可以通过用斜杠替换1个冒号来工作。为什么是这样?怎么走?
MyBundle:Default:_partials/internalSubStatus.html.twig
MyBundle:Default/_partials:internalSubStatus.html.twig
答案 0 :(得分:1)
使用MyBundle:Default:_partials:internalSubStatus.html.twig
是旧语法,不再建议使用。 /
之所以有效,是因为解析器现在将查找子目录。这很令人困惑,an issue于2014年针对您的问题被创建。
可行的方法是使用新的语法,您也可以在documentary for symfony 3.4中找到该语法,我引用:
如果您需要引用捆绑软件中的模板,请使用Symfony 使用Twig命名空间语法 (@ BundleName / directory / filename.html.twig)。这允许几个 类型的模板,每个模板都位于特定的位置
在您的情况下,我想像的是@MyBundle/Default/_partials/internalSubStatus.html.twig