我想知道是否有一种干净的方法可以从包含的模板中添加JS和CSS。
因此,例如,如果layout.html.twig具有:
{% include 'GenericBundle:Generic:page.html.twig' with {'data': data} %}
...
{% block javascript %}
{% javascripts
'@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
'@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
在通用捆绑页面中,我想添加更多Javascript,但将其添加到已建立的Javascript块中,以保持HTML和JS最佳实践。
有干净的方法吗?我正在使用Symfony2,并且很可能使用Singletons等解决方案,但如果有可用的话,我宁愿采用更清洁的方法。
答案 0 :(得分:18)
我知道我参加派对的时间有点晚了,但是使用Twig 1.2,您可以使用use代码和block功能:
<强> GenericBundle:通用:page.html.twig 强>
{% block javascripts %}
<script src="..."></script>
{% endblock %}
{% block included_content %}
Bar
{% endblock %}
<强> layout.html.twig 强>
{% use 'GenericBundle:Generic:page.html.twig' with javascripts as page_javascripts %}
{% block javascript %}
{% javascripts
'@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
'@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{{ block('page_javascript') }} // Don't forget the 'braces'
{% endblock %}
...
{{ block('included_content') }} // Don't forget the 'braces'