После запуска
php app/console assetic:dump --env=prod
все активы сбрасываются.
Есть ли способ сбросить только один файл?
После запуска
php app/console assetic:dump --env=prod
все активы сбрасываются.
Есть ли способ сбросить только один файл?
Похоже, вам нужно будет создать свою собственную команду:
<?php
namespace Your\Namespace\Command;
use Symfony\Bundle\AsseticBundle\Command\AbstractCommand;
class DumpSingleAsset extends AbstractCommand
{
protected function configure()
{
$this
->setName('assetic:dump_single_asset')
->setDescription('Dumps a single asset')
->addArgument('name', InputArgument::REQUIRED, 'The name of the asset')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$name = $input->getArgument('name');
$this->dumpAsset($name, $output); // Inherited from AbstractCommand
}
}
Ассемблерные документы показывают путь более простой способ сбрасывать активы, но я не смог найти документацию о внутренностях AsseticBundle, я просто прочитал код команды.
Вот решение, использующее только конфигурации. В файле конфигурации оставляйте пакеты как:
bundles: []
Это не будет загружать активы из любого пакета, если вы не укажете его вручную.
используйте именованные активы, как описано здесь, для загрузки активов, которые вы хотите по отдельности.
http://symfony.com/doc/current/cookbook/assetic/asset_management.html#using-named-assets
У меня есть свое собственное сложное решение для аналогичной проблемы, потому что мне нужны дамп-активы, отсутствующие на шаблонах ветки, поступающих из базы данных или json файла.
Только с именем актива, я не понимаю, как вы могли это сделать без дальнейших объяснений. Если вы печатаете значение $name при запуске спам-дампа, вы получаете что-то вроде "afd49f7". Symfony2 читает все блоки javascripts и stylesheets на шаблонах ветки и автоматически назначает это имя.
Если вы попытаетесь минимизировать один файл вручную, вам лучше использовать yui-compress или аналогичный напрямую, иначе, если вам действительно нужно сбросить коллекцию активов в один файл (коллекция может содержать только один файл) или один файл, но с помощью symfony2 вы должен использовать "названные активы" и что-то вроде команды, предложенной parla. См. Соответствующий раздел Как использовать Assetic для управления активами, а также проверьте AsseticBundle Конфигурация.
В любом случае команда выше не работает на Symfony2 v2.3 (LTS), поэтому метод dumpAsset объявляется как закрытый в DumpCommand, а AbstractCommand не существует.
Если вы используете Symfony2 v2.3, вам нужно переписать всю команду add --name
и изменить ->setName('assetic:dump')
для чего-то еще.