首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含来自twig的非twig文件

包含来自twig的非twig文件
EN

Stack Overflow用户
提问于 2011-12-20 23:36:22
回答 4查看 15.6K关注 0票数 9

我需要在Twig模板中包含一个文件的内容(在我的资源文件夹中)。

我试过了,但没有成功:

代码语言:javascript
复制
{% include 'public/directory/file.ext' %}

Twig不能做到这一点吗?(我不想使用Assetic)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-21 05:31:05

前段时间我专门为此做了一个bundle。它很像是file_get_contents的包装器。

可以在here中找到该设置。

票数 3
EN

Stack Overflow用户

发布于 2014-08-19 10:21:28

1.15版本中的新功能:在Twig1.15中添加了源函数。source函数返回模板的内容而不呈现它

http://twig.sensiolabs.org/doc/functions/source.html

票数 17
EN

Stack Overflow用户

发布于 2011-12-21 02:31:13

如果文件不是有效的Twig模板,twig将在加载文件时出现错误。原因是Twig将包括渲染的文件,而不是它的内容(找到here)。

您可以尝试使用use语句,但我认为这也不会起作用。

此外,您使用的语法似乎不正确。当我包含(或使用)另一个twig模板时,我使用以下语法:

代码语言:javascript
复制
{% use "AcmeWebsiteBundle::include.html.twig" %}

文件include.html.twig驻留在src\Acme\WebsiteBundle\Resources\views\include.html.twig中。因此,如果您的文件是src\Acme\WebsiteBundle\Resources\public\directory\include.ext格式的,您可以尝试

代码语言:javascript
复制
{% use "AcmeWebsiteBundle::..\public\directory\include.ext" %}

如果这不起作用,您可以将文件移动到views文件夹中。如果这是不可能的,您可以放入app\Resources\views\并使用以下语法:

代码语言:javascript
复制
{% use "::include.ext" %}

如果use语句不起作用(我担心这一点),您可以直接将文件包装到twig模板中。我正在用twig模板化一些简单的JSON结构。因此,有一种方法可以让您将file.ext的内容包含到twig模板中,然后呈现它。

如果所有这些都失败了,则必须创建一个Twig扩展,该扩展添加一个新标记(类似于content)来读取文件并将其内容输出到您的twig模板中。

代码语言:javascript
复制
{% content 'public/directory/file.ext' %} {# would put content of the file #}

希望这能帮助你把你的文件包括进来。

致以敬意,

哑光

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8577911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档