个人样式表必须放在sass目录中。

6

我正在尝试设置Symfony2来编译SASS文件。

然而,每次我运行php app/console assetic:dump时,都会出现以下错误:

Individual stylesheets must be in the sass directory.

这是我的 main.scss 文件的样子:
@import "utilities/variables";

@import "base/layout";
@import "base/footer";
@import "base/modules";
@import "base/form";
@import "base/button";
@import "base/plugin-overrides";

@import "utilities/loaders";

这些文件中没有纯CSS,我尝试注释掉所有内容,但仍然会出现错误。

我正在使用以下方式渲染所有内容:

{% block stylesheets %}
    {% stylesheets
        filter='compass'
        'bundles/mybundle/styles/main.scss'
    %}
        <link rel="stylesheet" type="text/css" href="{{ asset_url }}"/>
    {% endstylesheets %}
{% endblock %}

我应该选择使用过滤器compass来拾取文件并进行编译。

我的Assetic配置如下:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ 'MaximCMSBundle' ]
    #java: /usr/bin/java
    filters:
        cssrewrite: ~
        sass: ~
        compass: ~

我已经在参数中定义了正确的compass和sass路径:

ruby.path: 'C:\Ruby200-x64\bin'
assetic.filter.sass.bin: 'C:\Ruby200-x64\bin\sass'
assetic.filter.compass.bin: 'C:\Ruby200-x64\bin\compass'
assetic.filter.compass.images_dir: '%kernel.root_dir%/../web/images'
assetic.filter.compass.http_path: /images

我正在使用以下版本:

SASS: 3.4.5

Compass: 1.0.1

当我将这些版本回滚到以下版本时:

SASS: 3.2.19

Compass: 0.12.7

一切都正常工作,但是我想使用最新版本。


同样的问题... 你已经解决了吗? - Christian
我正在使用较旧版本的SASS和Compass,自那时以来我还没有进行测试。 - Maxim
2个回答

5

调整assetic过滤器以适应更新的Compass/Saas版本只需要进行一行修改。

编辑"vendor/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php"

将第312行更改为:

$pb->add('--sass-dir')->add('')->add('--css-dir')->add('');

to:

$pb->add('--sass-dir')->add($tempDir)->add('--css-dir')->add($tempDir);

那对我很有帮助。

0

在尝试了Indivision Dev的解决方案和其他我在网上看到的解决方案之后,我通过清除缓存来解决了这个问题:

php app/console cache:clear -e prod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接