资产管理是了解恕我直言的最难的部分,即使在与Symfony玩了一年或更长时间之后。无论如何,我正在试验named assets:
assets:
mybundle_front_js:
inputs:
- @MeMyBundle/Resources/public/jquery/dist/jquery.js
- @MeMyBundle/Resources/public/bootstrap/js/affix.js
- @MeMyBundle/Resources/public/bootstrap/js/alert.js
- @MeMyBundle/Resources/public/bootstrap/js/button.js
- @MeMyBundle/Resources/public/bootstrap/js/carousel.js
- @MeMyBundle/Resources/public/bootstrap/js/collapse.js
- @MeMyBundle/Resources/public/bootstrap/js/dropdown.js
- @MeMyBundle/Resources/public/bootstrap/js/modal.js
- @MeMyBundle/Resources/public/bootstrap/js/tooltip.js
- @MeMyBundle/Resources/public/bootstrap/js/popover.js
- @MeMyBundle/Resources/public/bootstrap/js/scrollspy.js
- @MeMyBundle/Resources/public/bootstrap/js/tab.js
- @MeMyBundle/Resources/public/bootstrap/js/transition.js
filters: [?uglifyjs2]
使用命名资产:
{% block javascripts %}
{% javascripts
"@mybundle_front_js" %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
倾倒他们:
php app/console cache:clear --env=prod
php app/console assetic:dump --env=prod
结果是两个文件,大小相同:
%kernel.root_dir%/../web/assetic/mybundle_front_js.js
%kernel.root_dir%/../web/js/055a364.js
有没有理由在prod环境中生成两个相同的文件?
答案 0 :(得分:2)
第一个文件assetic/mybundle_front_js.js
是配置命名资产的结果文件。第二个文件是模板中资产块使用的结果文件。
如果您在资产块中使用两个资产:
{% block javascripts %}
{% javascripts
"@mybundle_front_js"
"@whateveer" %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
您最终会在assetic/
文件夹中找到两个命名资源文件,并在js/
文件夹中包含两个文件内容的一个文件。
猜测为什么assetic/
文件夹中还有文件:您可以配置命名资源并干净地引用它们而不使用{% javascripts %}
块。