在Twig中推迟执行/完成

3
我正在单独使用Twig,而非Symfony2框架,用于创建更小的东西来更好地满足我的需求。我的框架的一部分是一个资产管理库,它管理js / css依赖项,并在预处理、合并、最小化和gzip之后,输出适当的和
2个回答

4

对于那些仍在寻找答案的人,我编写了一个Twig扩展,可以延迟块渲染。


3

I think this would work:

base.twig

{% set bodyContent %}
    {% block body %}{% endblock body %}
{% endset %}
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>{{ title }}</title>
        <!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
        {{ Assets.headAssets }}
    </head>
    </body>
        {{ bodyContent }}
        {{ Assets.bottomAssets }}
    <body>
</html>

其他文件可以不修改。

正如您所看到的,块bodybase.twig模板中首先调用,因此当执行到{{ Assets.headAssets }}时,所有资产已经被要求。


它正常工作,但是稍微与此无关的是,使用 body-content 作为 twig 变量会导致解析错误,因为 - 被视为减法操作。我自作主张修复了这个问题。 - Andri
@Andri 如果答案有问题,只需留下评论让原帖作者进行修正即可。 - user275683

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接