我正在学习Symfony 2,目前正在使用Assetic来管理我的CSS和Javascript文件,如下所示:
{% stylesheets '@testMainBundle/Resources/public/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}
{% javascripts '@testMainBundle/Resources/public/js/*' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
在@testMainBundle/Resources/public/js
我有3个文件:bootstrap.min.js
,jquery-1.10.2.min.js
和main.js
。但是,网页的源代码如下:
<script type="text/javascript" src="/app_dev.php/js/4a0d3cd_part_1_bootstrap.min_1.js"></script>
显然,Assetic只提供该目录中的一个文件,即bootstrap文件。我已经检查过它并没有合并文件,它只是 正在输出的bootstrap.min.js
文件。
但是,Assetic可以正常使用两个CSS文件。我尝试刷新浏览器缓存,但没有任何变化。
另外,作为一个附带问题,如何确保Assetic在jquery-1.10.2.min.js
之前输出bootstrap.min.js
? Bootstrap依赖于jQuery,因此无法先打印。
答案 0 :(得分:1)
找到我自己的解决方案,我必须做以下事情:
{% javascripts
'@testMainBundle/Resources/public/js/jquery-1.10.2.min.js'
'@testMainBundle/Resources/public/js/*' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
不确定Assetic是否记录为以这种方式工作,但它似乎打印出jQuery首先包含,然后是其他每个文件。完美!