我需要在Twig模板中包含一个文件的内容(在我的资源文件夹中)。
我试过了,但没有成功:
{% include 'public/directory/file.ext' %}Twig不能做到这一点吗?(我不想使用Assetic)
发布于 2011-12-21 05:31:05
发布于 2014-08-19 10:21:28
1.15版本中的新功能:在Twig1.15中添加了源函数。source函数返回模板的内容而不呈现它
http://twig.sensiolabs.org/doc/functions/source.html
发布于 2011-12-21 02:31:13
如果文件不是有效的Twig模板,twig将在加载文件时出现错误。原因是Twig将包括渲染的文件,而不是它的内容(找到here)。
您可以尝试使用use语句,但我认为这也不会起作用。
此外,您使用的语法似乎不正确。当我包含(或使用)另一个twig模板时,我使用以下语法:
{% use "AcmeWebsiteBundle::include.html.twig" %}文件include.html.twig驻留在src\Acme\WebsiteBundle\Resources\views\include.html.twig中。因此,如果您的文件是src\Acme\WebsiteBundle\Resources\public\directory\include.ext格式的,您可以尝试
{% use "AcmeWebsiteBundle::..\public\directory\include.ext" %}如果这不起作用,您可以将文件移动到views文件夹中。如果这是不可能的,您可以放入app\Resources\views\并使用以下语法:
{% use "::include.ext" %}如果use语句不起作用(我担心这一点),您可以直接将文件包装到twig模板中。我正在用twig模板化一些简单的JSON结构。因此,有一种方法可以让您将file.ext的内容包含到twig模板中,然后呈现它。
如果所有这些都失败了,则必须创建一个Twig扩展,该扩展添加一个新标记(类似于content)来读取文件并将其内容输出到您的twig模板中。
{% content 'public/directory/file.ext' %} {# would put content of the file #}希望这能帮助你把你的文件包括进来。
致以敬意,
哑光
https://stackoverflow.com/questions/8577911
复制相似问题