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

前端之家收集整理的这篇文章主要介绍了如何在Symfony2 / Twig模板中包含原始HTML文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在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致敬.

猜你在找的HTML相关文章