сборка исключений при использовании сборка: дамп и компас с Symfony2 - PullRequest
1 голос
/ 07 ноября 2011

У меня есть несколько файлов scss, импортированных в более крупный файл с помощью оператора scss @import.При попытке выгрузить ресурсы я получаю следующее исключение:

$ php app/console assetic:dump --force --verbose
Dumping all dev assets.
Debug mode is on.
[file+] sf_project/app/../web/js/f389f05.js
        sf_project/src/Theaterjobs/MainBundle/Resources/public/js/jquery-1.6.3.min.js
[file+] sf_project/app/../web/js/f389f05_jquery-1.6.3.min_1.js
        sf_project/src/Theaterjobs/MainBundle/Resources/public/js/jquery-1.6.3.min.js
[file+] sf_project/app/../web/css/e9b81fe.css
        sf_project/src/Theaterjobs/MainBundle/Resources/assets/css/_base.scss
        sf_project/src/Theaterjobs/MainBundle/Resources/assets/css/_structure.scss
        sf_project/src/Theaterjobs/MainBundle/Resources/assets/css/theaterjobs.scss

  [RuntimeException]  

Exception trace:
 () at sf_project/vendor/assetic/src/Assetic/Filter/CompassFilter.php:278
 Assetic\Filter\CompassFilter->filterLoad() at sf_project/vendor/assetic/src/Assetic/Filter/FilterCollection.php:62
 Assetic\Filter\FilterCollection->filterLoad() at sf_project/vendor/assetic/src/Assetic/Asset/BaseAsset.php:83
 Assetic\Asset\BaseAsset->doLoad() at sf_project/vendor/assetic/src/Assetic/Asset/FileAsset.php:57
 Assetic\Asset\FileAsset->load() at sf_project/vendor/assetic/src/Assetic/Asset/BaseAsset.php:92
 Assetic\Asset\BaseAsset->dump() at sf_project/vendor/assetic/src/Assetic/Asset/AssetCollection.php:97
 Assetic\Asset\AssetCollection->dump() at sf_project/vendor/bundles/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:206
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->doDump() at sf_project/vendor/bundles/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:163
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->dumpAsset() at sf_project/vendor/bundles/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:62
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->execute() at sf_project/vendor/symfony/src/Symfony/Component/Console/Command/Command.php:214
 Symfony\Component\Console\Command\Command->run() at sf_project/vendor/symfony/src/Symfony/Component/Console/Application.php:194
 Symfony\Component\Console\Application->doRun() at sf_project/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:75
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at sf_project/vendor/symfony/src/Symfony/Component/Console/Application.php:118
 Symfony\Component\Console\Application->run() at sf_project/app/console:16

пути сокращены для удобства чтения:)

наш config.yml выглядит следующим образом

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    filters:
        cssrewrite: ~
        sass:
          bin: /usr/local/bin/sass
        compass:
          bin: /usr/local/bin/compass
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar"

IЯ включаю таблицы стилей, используя

{% stylesheets filter="compass,cssrewrite" '@TheaterjobsMainBundle/Resources/assets/css/*' %}
    <link rel="stylesheet" href="{{ asset_url }}" type="text/css" media="screen" charset="utf-8" />
{% endstylesheets %}

Я понятия не имею, что происходит.Я дам вам любой вывод, который может помочь решить эту проблему.

Спасибо!

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Оказывается, это был тот факт, что я включил таблицы стилей с '@TheaterjobsMainBundle/Resources/assets/css/*' (с подстановочным знаком в пути) вместо прямой ссылки на основной файл scss, который импортирует все партиалы scss с помощью @ import.

поэтому sf тоже пытался скомпилировать партиалы и потерпел неудачу из-за неустановленных переменных.

не очистка кеша тоже не была полезной:)

0 голосов
/ 07 ноября 2011

Я думаю, что возникает исключение, когда процесс Compass не может быть выполнен или не завершается правильно. Вы уверены, что ваш компас правильный путь? Я думаю, что у вас там есть настройки по умолчанию, но в зависимости от вашей системы они могут отличаться. Например, на Ubuntu Server 11.04 мой путь SCSS:

sass: /var/lib/gems/1.8/bin/sass

Поэтому убедитесь, что компас действительно находится в /usr/local/bin/compass, а не где-то еще.

...