假设我有以下 Twig 模板:
base.html.twig:
<html>
<body>
{% block javascripts %}
{% javascripts
'../app/Resources/js/jquery-2.2.4.min.js'
'../app/Resources/js/base.js'
filter='uglifyjs2' output='main.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock javascripts %}
</body>
</html>
page1.html.twig:
{% extends 'base.html.twig' %}
{% block javascripts %}
{{ parent() }}
{% javascripts
'../app/Resources/js/page1_specific.js'
'../app/Resources/js/page1_other.js'
filter='uglifyjs2' output='page1.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock javascripts %}
使用此代码,page1
模板将发出两个 JavaScript 请求,一个针对 main.js
,另一个针对 page1.js
。
是否可以以不同的方式编写它,这样我只会生成一个特定于每个最终模板的大js文件,包括基本页面js和page1
特定js?
最佳答案
您可以在 config.yml 中声明基本 js,如下所示:
assetic:
assets:
base:
inputs:
- '@AppBundle/Resources/public/js/jquery-2.2.4.min.js'
- '@AppBundle/Resources/public/js/base.js'
并在您的 javascript block 中调用它:
{% javascripts
'@base'
'../app/Resources/js/page1_specific.js'
'../app/Resources/js/page1_other.js'
filter='uglifyjs2' output='page1.js'
%}
您可以找到更多info here .
关于javascript - 将来自多个模板的 JavaScript 与 Assetic 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930093/