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

时间:2011-05-28 15:10:15

标签: ruby-on-rails variables ruby-on-rails-3.1 sass asset-pipeline

我最近使用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

访问该文件时

有什么想法吗?

2 个答案:

答案 0 :(得分:15)

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

引用它
@import "configuration";

来自你的主sass文件。

答案 1 :(得分:2)

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

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

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