Symfony资产与命名资产,在prod环境中倾倒两次?

时间:2014-03-28 19:09:48

标签: symfony assets symfony-2.3

资产管理是了解恕我直言的最难的部分,即使在与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环境中生成两个相同的文件?

1 个答案:

答案 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 %}块。