我正在尝试设置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: ~
我已经在参数中为罗盘和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
指南针:1.0.1
当我将这些版本回滚到以下版本时:
SASS:3.2.19
指南针:0.12.7
一切正常,但我想使用最新版本。
答案 0 :(得分:5)
资产过滤器需要一行更改才能使用较新版本的Compass / Saas
编辑&#34;供应商/ kriswallsmith / assetic / src / Assetic / Filter / CompassFilter.php&#34;
从以下地址更改第312行:
$pb->add('--sass-dir')->add('')->add('--css-dir')->add('');
为:
$pb->add('--sass-dir')->add($tempDir)->add('--css-dir')->add($tempDir);
为我修好了。
答案 1 :(得分:0)
在尝试了Indivision Dev的解决方案以及我在网络上看到的其他解决方案后,我通过清除缓存解决了这个问题:
php app/console cache:clear -e prod