Актив Symfony с именованными активами, дважды сбрасываемый в рабочей среде?

Управление активами — самая сложная часть для понимания, ИМХО, даже после года или более игры с Symfony. В любом случае, я экспериментировал с именованными активами:

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

Есть ли причина создавать два одинаковых файла в рабочей среде?


person gremo    schedule 28.03.2014    source источник
comment
Это также хорошо для отладки, попробуйте использовать --no-debug, не уверен, но должен предотвратить создание папки /assets... но просто предположение.   -  person Markus Kottländer    schedule 05.04.2014


Ответы (1)


Первый файл assetic/mybundle_front_js.js — это файл, полученный в результате настройки указанного актива. Второй файл — это результирующий файл, используемый из блока активов внутри вашего шаблона.

Если бы вы использовали два актива в своем блоке активов:

{% block javascripts %}
    {% javascripts
        "@mybundle_front_js"
        "@whateveer" %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

вы получите два именованных файла ресурсов в папке assetic/ и один файл в папке js/, содержащий содержимое обоих файлов.

Угадайте, почему в папке assetic/ также есть файлы: вы можете настроить именованные активы и ссылаться на них без использования блока {% javascripts %}.

person Emii Khaos    schedule 29.03.2014