通过Assets Pipeline,Rails 3.1 rc1携带Sass变量

我最近用3.1 rc1分支了我的一个Rails 3.0项目来尝试新的资产管道。 在进入3.1之前我一直在项目中使用Sass所以我在一个单独的配置文件中设置了一些变量和函数,让我所有的其他sass文件在第一行导入一个文件。

这样做非常好,不会在样式表中重复一些颜色代码和一般几何体。 问题是现在新的Assets Pipeline是我已经知道它将“.css.sass”文件转换为原始css,然后将其附加到其余代码。

所以,如果我在“application.css”中指定:

/* *= require ./configure *= require ./what_ever_other_files_i_want_to_import */ 

我得到的错误如下:

 Sass::SyntaxError Undefined variable: "$interactive". 

当我尝试从以下位置访问该文件时: http://localhost:3000/assets/application.css

有任何想法吗?

Sass支持Partials 。 这样,您可以在__configuration.sass_中包含单独的配置并引用它

 @import "configuration"; 

从你的主sass文件。

不幸的是,我发现SASS变量是特定于页面的。

如果要在所有文件中携带变量,请删除*= require_tree . 从application.css.scss文件中@import "layout.css.scss";行,并将其替换为@import "layout.css.scss"; 手动导入每个sass文件的指令。

是的,你必须@import每个文件