Combining Assetic Resources across inherited templates Combining Assetic Resources across inherited templates symfony symfony

Combining Assetic Resources across inherited templates


You can actually do the following:

In layout.html.twig (or whatever your layout is)

{% block stylesheets %}    {% stylesheets 'your_assets_here' %}         <link rel="stylesheet" href="{{ asset_url }}" />    {% endstylesheets %}{% endblock %}

And in any template that extends that layout:

{% block stylesheets %}    {{ parent() }}    {% stylesheets 'additional_assets_here' %}         <link rel="stylesheet" href="{{ asset_url }}" />    {% endstylesheets %}{% endblock %}

Then you wouldn't need to retype all the old assets as suggested by Nemanja Niljkovic


Unfortunately, you can't :(

You can't override the assetic tags to add more assets. You can however do the following:

{% block stylesheets %}    {% stylesheets 'your_assets_here' %}         <link rel="stylesheet" href="{{ asset_url }}" />    {% endstylesheets %}{% endblock %}

Then, when you extend the template:

{% block stylesheets %}    {% stylesheets 'your_old_assets_here' 'your_new_assets_here' %}         <link rel="stylesheet" href="{{ asset_url }}" />    {% endstylesheets %}{% endblock %}

In the overridden block, you can use parent() to include the parent block, but you would have 2 links then: you can't combine the old assetic tag with the new one.

You could however make a twig macro that would output the {% stylesheets %} assetic tag with your old assets, and as input it would contain new asset locations.

More info here.