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:
    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

我正在运行以下版本:

萨斯:3.4.5

罗盘:1.0.1

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

萨斯:3.2.19

罗盘:0.12.7

一切正常,但我想使用最新版本。

4

2 回答 2

5

资产过滤器需要进行一行更改才能与较新版本的 Compass / Saas 一起使用

编辑“供应商/kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php”

将第 312 行从:

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

至:

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

那为我修好了。

于 2015-07-28T09:19:39.260 回答
0

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

php app/console cache:clear -e prod
于 2016-01-26T13:58:15.543 回答