【问题标题】:How can I find the path to an include in Symfony2?如何在 Symfony2 中找到包含的路径?
【发布时间】:2012-02-12 22:56:24
【问题描述】:

我已在此站点上彻底查看了与 Symfony 相关的问题,但找不到我需要的答案。

我正在使用 Symfony 2.0.9 和 PHP 5.3.6,我的文件结构如下所示:

src/
  Blog/
    TestBundle/
      Resources/
        views/
          Default/
            index.html.twig
            header.html.twig

在 index.html.twig 我有:

<div id="header">
{% include "BlogTestBundle:Resources:Default:header.html.twig" %}
</div>

它总是出错

Twig_error_loader:找不到模板

无论我使用什么路径。为什么找不到文件?他们甚至在同一个目录中!

有人知道我做错了什么吗?

【问题讨论】:

  • 你应该从路径中删除“资源”。

标签: include symfony twig partials


【解决方案1】:

twig 文件包含应遵循以下格式:

FullBundleName:ControllerName:filename

如果部分不存在,您也可以修改它们,即对于 bundle /views 目录下的文件,您可以使用 FullBundleName::filename

所以在你的情况下,使用BlogTestBundle:Default:header.html.twig

【讨论】:

  • 太棒了! 谢谢 Inori - 这确实有效。我使用了BlogTestBundle:Default:header.html.twig,奇怪的是完整路径不起作用。
  • 我遇到了同样的问题,在我的情况下,我写了“BlogTestBundle:DEFAULT:header.html.twig”(等效),它在我的 Windows 开发计算机上工作,但代码在部署服务器,因为 Linux 区分大小写。只是需要注意的事情!
  • 这个答案是正确的,但我也遇到了以下问题:我试图包含一个只包含宏的文件,所以我首先使用.twig 扩展名而不是.html.twig 来命名它,它没有不行。看来您必须使用.html.twig 扩展名,否则将找不到该文件。
猜你喜欢
  • 1970-01-01
  • 2013-08-21
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
相关资源
最近更新 更多