Yui_compressor не работает в symfony 2

Я использовал это руководство, чтобы добавить yui_compressor в мой симфонический проект. Но он не создает минифицированные файлы. Ниже приведены настройки, которые я применил, пожалуйста, посмотрите и скажите мне, что может быть не так. Файл конфигурации

// Added this to the config.yml file in app/config (and yes, I'm on a mac)  
    yui_css:
        jar: "%kernel.root_dir%/Resources/filter/java/yuicompressor-2.4.7.jar"
        java: /usr/bin/java

Базовая ветка

// Added this to the :base.html.twig in app/Resources/views

    {% stylesheets  filter='yui_css' output='public/css/compiled-main.css'
        'public/css/main.css'
    %}

Добавлен файл в архив yui_compressor при сборке в папку app/Resources/filter/java в мой симфонический проект


person NSCoder    schedule 08.04.2013    source источник
comment
Можете ли вы опубликовать полный код {% stylesheets %}?   -  person cheesemacfly    schedule 08.04.2013
comment
Вы пытались сбросить файлы ресурсов с помощью php app/console assetic:dump --env=prod? См. symfony.com/doc/current/cookbook/assetic. /   -  person dbrumann    schedule 08.04.2013


Ответы (1)


1 – Загрузите и добавьте yuicompressor в свой проект

Разархивируйте, перейдите в каталог build/ и извлеките файл yuicompressor-2.4.7.jar, чтобы поместить его в каталог проекта app/Resources/java/. (Кроме того, вы можете переименовать файл yui в yuicompressor.jar)

2 – Включить сжатие yui для рабочей среды

Логично добавить компрессор юи в свой файл config_prod.yml и не для всего окружения (вы должны удалить строки из config.yml).

Итак, добавьте эти строки в config_prod.yml:

assetic:
    debug: false
    filters:
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
            apply_to: "\.js"
        yui_css:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
            apply_to: "\.css"

3 – Проверьте файл контроллера продукта

Перейдите в web/app.php и установите prod/false (false для отсутствия отладки).

$kernel = new AppKernel('prod', false);

4 – Очистить кеш

Если вы хотите пересобрать свой CSS и JS (после обновления), никогда не забывайте очищать кеш в prod, иначе компрессор yui проигнорирует изменения:

php app/console cache:clear --env=prod --no-debug

5 — Регенерация приборов со сжатием

Наконец, вы можете генерировать и сжимать ваши файлы!

php app/console assetic:dump --env=prod --no-debug -v

Обратите внимание, что -v показывает более подробную информацию о процессе сжатия, вы сможете увидеть, есть ли ошибка, вызывающая проблемы с yui компрессором!

Например, тег комментария JS "/!" вызывает проблемы с компрессором yui, вы должны переименовать все "/!" для «/*» в ваших файлах JS.

Вот и все ^^

person Sybio    schedule 09.04.2013
comment
Обратите внимание, что компрессор YUI теперь заброшен (и не поддерживается), и что люди должны использовать другое решение, такое как UglyfyJS и CSS, как описано здесь: symfony.com/doc/current/cookbook/assetic/uglifyjs.html - person Sybio; 12.09.2013
comment
Sybio прав, тот же конфиг не будет получен из config.yml, но он должен быть из config_prod.yml. Также убедитесь, что на вашем сервере установлена ​​java (проверьте java-версию из командной строки, чтобы узнать, существует ли она). Спасибо, Sybio. - person Dung; 02.06.2016