2012-03-29 5 views
32

Мне нужно несколько советов о том, как работать с активами в Symfony 2. Например, нужно ли всегда выполнять активы: обновлять каждый раз при добавлении изображения? Я знаю, что Assetic заботится об управлении файлами css и javascript, но как насчет изображений? Какова была бы лучшая практика для front-end разработки с Symfony 2? Как вы, ребята, настраиваете свои css, изображения и js-файлы в своем приложении, чтобы упростить разработку, развертывание и изменение?Symfony 2 - Работа с активами

+0

является 'активов: update' реальной команды? Я не нашел его упомянутым где-либо еще и не могу найти его в Symfony/Assetic codebase. Если это действительно существует, мне было бы интересно узнать об этом больше. – Sam

+0

Связанный: http://stackoverflow.com/questions/12123069/how-to-properly-change-what-composer-or-symfony2-does-after-running-composer-up – Kzqai

ответ

74

Что касается изображений, если вы добавили его в общую папку, я думаю, нет необходимости выполнять assets:update

Однако, если добавить изображение в пределах ресурсов папки пачки, возможно, придется, в зависимости от вашей ОС и какие параметры вы использовали при вызове assets:install

Если вы используете ОС, которая поддерживает символические ссылки (Linux, OS X, и я думаю, что все ОС, кроме Windows), вы можете установить вызов активов (я не точно помните звонок, здесь важна опция символической ссылки):

php app/console assets:install web --symlink 

Таким образом, вместо того, чтобы иметь копию ресурсов каждого пакета, у вас будет символическая ссылка, поэтому обновление не должно быть необходимости. Если у вас есть ОС, которая не поддерживает символические ссылки, я думаю, вам придется постоянно обновлять или переустанавливать активы (фактически, я всегда использовал assets:install, я не знал, что существует опция обновления: P).

Что касается настройки, я обычно размещаю все css, js, изображения и любые общедоступные ресурсы внутри пакета, если он используется только внутри пакета и помещает его в общую папку, если он используется многими пакетами, или я планируете использовать его в других пакетах.

+5

Символ-ссылка также работает на Windows – DoubleYo

+1

Кроме того, если вы используете Composer для обновления пакетов вашего поставщика, не забудьте установить «extra»: {«symfony-assets-install»: «symlink»} 'в вашем файле composer.json ([см. Документы ] (http://symfony.com/doc/current/book/installation.html#updating-vendors)). – Geert

+1

Символ-ссылка также работает в Windows при запуске cmd (или git bash) в режиме администратора. :) потому что Assetic работает с http://php.net/manual/en/function.symlink.php, который поддерживается в Windows. – Athlan

2

По Symfony 2.7 это будет генерировать относительные символьные ссылки в web каталоге:

php app/console assets:install web --symlink --relative 

В composer.json оных:

"extra": { 
    "symfony-assets-install": "relative" 
} 

Это также будет генерировать относительные символьные ссылки на composer update.

+0

Поскольку composer.json используется и, таким образом, используется во время установки в производственной среде, я не уверен, что вы хотите это прямо в своем composer.json. – Kzqai

+0

См. Http://stackoverflow.com/a/15797829/69993 – Kzqai