首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用assetic时出现assetic异常:通过symfony2转储和指南针

使用assetic时出现assetic异常:通过symfony2转储和指南针
EN

Stack Overflow用户
提问于 2011-11-07 21:12:42
回答 2查看 3.3K关注 0票数 1

我使用scss的@import语句将一些scss文件导入到一个更大的文件中。在尝试转储资产时,我得到以下异常:

代码语言:javascript
复制
$ 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如下所示

代码语言:javascript
复制
# 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"

我使用以下命令包含样式表

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

我不知道发生了什么。我将转储任何可能有助于解决此问题的输出。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-11 05:10:36

事实证明,我使用'@TheaterjobsMainBundle/Resources/assets/css/*'包含样式表(在路径中使用通配符),而不是直接链接到使用@import导入所有scss部分的主scss文件。

因此,sf也试图编译部分,但由于未设置变量而失败。

不清除缓存也没有太大帮助:)

票数 1
EN

Stack Overflow用户

发布于 2011-11-07 21:54:07

我认为当Compass进程无法执行或未正确完成时,就会抛出异常。你确定你的指南针路径是正确的吗?我认为这是您在那里的默认设置,但根据您的系统,它可能会有所不同。例如,在Ubuntu Server 11.04上,我的SCSS路径是:

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

因此,确保compass实际上驻留在/usr/local/bin/compass中,而不是其他地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8036964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档