加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

如何在Symfony2 / Twig模板中包含原始HTML文件?

发布时间:2020-12-14 18:52:55 所属栏目:资源 来源:网络整理
导读:我正在Symfony2的一个项目工作,我有几个小的html需要被包括在我的主要视图之一.根据官方的Twig文档,我应该可以简单地使用{%include’filename.html’%},但是在Symfony中,除非文件名以“.html.twig”结尾,否则会发现该文件找不到.我想避免为这些文件使用Twi
我正在Symfony2的一个项目工作,我有几个小的html需要被包括在我的主要视图之一.根据官方的Twig文档,我应该可以简单地使用{%include’filename.html’%},但是在Symfony中,除非文件名以“.html.twig”结尾,否则会发现该文件找不到.我想避免为这些文件使用Twig模板,因为它们没有动态内容和大量的双括号(它们是 JavaScript模板),并且要求模板设计器必须将这些文件中的每一个都包含在{%raw%标签似乎是一个真正的Kludgey方式来做到这一点.

解决方法

简要介绍twig文件扩展名(取自文档):

Every template name also has two extensions that specify the format and engine for that template.

AcmeBlogBundle:Blog:index.html.twig - HTML format,Twig engine
AcmeBlogBundle:Blog:index.html.php - HTML format,PHP engine
AcmeBlogBundle:Blog:index.css.twig - CSS format,Twig engine

By default,any Symfony2 template can be written in either Twig or PHP,and the last part of the extension (e.g. .twig or .php) specifies which of these two engines should be used. The first part of the extension,(e.g. .html,.css,etc) is the final format that the template will generate.

因此,对于包含.html文件的文件,即使没有引发错误,也是至关重要的.

所以你有3个选择:

>如果文件是纯粹的JavaScript,那么将它们作为脚本标签包含在您的页面中.
>如果它们是混合的HTML和JS,然后用{%raw%}转义JS,并将这些文件包含为foo.html.twig模板.如果这样包含许多脚本,那么很可能您的设计人员可以通过一些重构将其大部分脚本移动到外部文件(参见选项1)
>如果你真的坚持你可以总是写一个Twig扩展名来包含原始的HTML文件. (编辑:请参阅@ Haprog的下面的答案有关此选项的更多详细信息).

{{include_html(‘foo / bar.html’)}}
> UPDATE 2015 twig已经添加了源代码功能:

{{source(‘AcmeSomeBundle:Default:somefile.html.twig’)}}

在下面的选项4的评论中,向@Nigel Angel致敬.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读