如何使Rails 3.1使用SASS(通过SCSS)作为默认值?

很难弄清楚如何使SASS(而不是SCSS)成为样式表的默认样式。

我试着sass_config.rb用这个文件:

Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed

我也尝试将其添加到environment.rb文件中。无论哪种方式,我都会收到此错误:

.../config/environment.rb:7:in `<top (required)>': 
  uninitialized constant Sass::Plugin (NameError)
村村小卤蛋2020/03/18 18:32:40

我将以下内容添加到config/environments/development.rb

config.sass.preferred_syntax = :sass

做到了。

米亚小宇宙2020/03/18 18:32:40

我绝对也喜欢sass而不是scss-您是否考虑过仅将罗盘gem用于所有CSS,并添加preferred_syntax = :sass到config / compass.rb中

我还没有在Rails 3.1上进行过测试,但是它在3.0.7中有效

编辑

作为故障排除步骤,当您仅从sass_config.rb中删除第一行代码,使其仅包含第二行代码时,会发生什么?这两条线都会导致错误吗?

泡芙Stafan2020/03/18 18:32:40

正如@krainboltgreene所评论的那样,将以下行添加到 config/application.rb

config.generators.stylesheet_engine = :sass

使得sass对于样式表生成的默认格式。但是,由于Rails 3.1.beta1不支持它,因此会收到以下错误消息

$ rails g scaffold user name:string
...
Could not find "scaffold.css.sass" in any of your source paths. Your current source paths are:
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/scaffold/templates
...

$ rails g controller users
...
Could not find "stylesheet.css.sass" in any of your source paths. Your current source paths are: 
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/assets/templates

如您所见,如果不中断生成器,就无法更改默认格式。相反,您可以手动创建额外的* .css.sass文件,无论是否使用scss文件,它们都可以正常工作。

村村LEY2020/03/18 18:32:40

对于rails 3.1.rc4,可以设置配置:

config.sass.preferred_syntax = :sass

application.rb文件中