2011-11-07 84 views
1

我使用scss的@import語句將一些scss文件導入到較大的文件中。當試圖轉儲我得到下面的異常資產:使用資產時的資產異常:使用symfony2轉儲和指南針

$ 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" 

我包括使用樣式表

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

我不知道發生了什麼事。我會轉儲任何可能有助於解決此問題的輸出。

謝謝!

回答

1

事實證明,我將'@TheaterjobsMainBundle/Resources/assets/css/*'(在路徑中帶有通配符)的樣式表包含在內,而不是直接鏈接到使用@import導入所有scss分支的主scss文件。

因此,sf試圖編譯partials,並且因未設置的變量而失敗。

不清除緩存是不是有幫助,無論是:)

0

我認爲當Compass進程無法執行或未正確完成時引發異常。你確定你的指南針路徑正確嗎?我認爲這是你在那裏的默認值,但取決於你的系統,它可能會有所不同。例如Ubuntu服務器11.04我SCSS路徑是:

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

所以一定要確保羅盤實際上駐留在/usr/local/bin/compass,而不是別的地方。

+0

是的,路徑是正確的。 – maiwald