Symfony2 Assetic не работает с несколькими файлами javascript со знаком *

Я использую Symfony2 и сборку Bundle. (проблема при использовании знака *, чтобы попросить сборщик принять все файлы)

Форма, которую я прочитал здесь и там, позволяет использовать несколько файлов javascript.

Это прекрасно работает, когда я пишу все файлы прямо перед <тег / html>:

{% javascripts
'@MySiteBlogBundle/Resources/public/js/test1.js'
'@MySiteBlogBundle/Resources/public/js/test2.js'
'@MySiteBlogBundle/Resources/public/js/test3.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

но тот же код не работает, если вместо перечисления файла я использую * (просто так 🙂

{% javascripts
'@MySiteBlogBundle/Resources/public/js/*'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

с * он работает только в зависимости от отображаемых страниц. Я сделал все мои тесты javascipt на классе, которые находятся на моем основном шаблоне ветки. И эти классы отображаются на всех страницах … Так что все тесты должны работать.

У кого-нибудь когда-нибудь возникала такая проблема при использовании этого * знака с сборкой?

Спасибо за любой комментарий / помощь.

1

Решение

Ранее я заметил только две проблемы со сборкой.

Во-первых, в производственном режиме вы должны сбросить их (сборка php app / console: dump —env = prod) перед использованием. Хорошо, это не проблема, но вы не должны забывать это.

Во-вторых, если вы используете знак * для загрузки всех скриптов JavaScript, порядок ваших скриптов будет алфавитным, и это может нарушить некоторые зависимости между файлами скриптов. По этой причине я обычно не использую знак *.

3

Другие решения

После нескольких часов с той же проблемой, я понял, что вам нужно:

  1. создать символические ссылки (А.К.А. симлинки) или скопируйте ваши пакеты командой:

    Ресурсы bin / console: установить

    или же

    Ресурсы bin / console: установить —symlink

  2. в ваших определениях используйте bundles/mysiteblog/js/* скорее, чем @MySiteBlogBundle/Resources/public/js/* (вы увидите путь к вашему пакету в WEB-каталоге после шага 1.

0

По вопросам рекламы [email protected]