我们正在使用Symfony2构建一个新站点,而Assetic看起来非常有希望进行资源管理,特别是自动将所有js / css文件组合和处理。
我们将拥有一些在网站范围内使用的资源,以及一些特定于特定网页的资源。我们还将使用三层继承的模板方法。
有没有办法将这两个概念结合起来,即在继承的模板中自动添加其他资源,以便它们都作为单一资源输出?
答案 0 :(得分:23)
您实际上可以执行以下操作:
在layout.html.twig(或任何你的布局)
{% block stylesheets %}
{% stylesheets 'your_assets_here' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
在任何扩展该布局的模板中:
{% block stylesheets %}
{{ parent() }}
{% stylesheets 'additional_assets_here' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
然后你不需要按照Nemanja Niljkovic的建议重新输入所有旧资产
答案 1 :(得分:18)
不幸的是,你不能:(
您无法覆盖资产标签以添加更多资产。但是,您可以执行以下操作:
{% block stylesheets %}
{% stylesheets 'your_assets_here' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
然后,当您扩展模板时:
{% block stylesheets %}
{% stylesheets 'your_old_assets_here' 'your_new_assets_here' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
在重写的块中,您可以使用parent()
来包含父块,但是您将拥有2个链接:您不能将旧的资产标记与新的标记组合。
然而,你可以制作一个枝条宏,用你的旧资产输出{%stylesheets%}资产标签,作为输入,它将包含新的资产位置。
更多信息here。