我只是运行Gassetics,似乎是SF资产管理的下一代。到目前为止,我使用了Assetics。 但有一个问题:使用Assetics我曾经使用Twig parent()方法分割文件以便只加载所需的文件:
{% block scripts %}
{{ parent() }}
{% javascripts
'@LCHAdminBundle/Resources/public/js/jquery.specific.addition.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock scripts %}
所以我可以添加一个特定的页面,只需要脚本,所以“强迫”(以高贵的方式)相应地思考和分割我的枝条文件。
Gassetics可以这样做吗?我jsut看到你可以指定后端和前端文件,仅此而已。
如果我使用Gassetic标签嵌套Twig文件,它会起作用吗?
编辑:感谢Wouter J.评论,我调整了我的问题: 在Assetics中,您明确指定要包含的文件,从而赋予嵌套功能。与Gassetics一样,您只需添加将在CSS / JS文件生成期间替换的标记,您如何实现相同的目标?
答案 0 :(得分:1)
您可以在gassetic配置中执行所有这些操作(请参阅https://github.com/romanschejbal/gassetic中的 yaml示例with gassetic.yml )。
示例gassetic.yml:
js:
files:
common.js:
- assets/vendor/jquery/jquery.js
- assets/vendor/angular/angular.js
page1.js:
- assets/vendor/lchadminbundle/jquery.specific.addition.js
common.html.twig:
{% block scripts %}
<!-- prod:common.js --><!-- endbuild -->
{% endblock scripts %}
page1.html.twig
{% extends 'common.html.twig' %}
{% block scripts %}
{{ parent() }}
<!-- prod:page1.js --><!-- endbuild -->
{% endblock scripts %}
这种方法比在子模板中嵌套脚本更好,因为可以在页面请求之间缓存常用文件。