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

zee*_*raw 18 variables ruby-on-rails sass ruby-on-rails-3.1 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
*/
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

Sass::SyntaxError
    Undefined variable: "$interactive".
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Kol*_*lja 15

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

@import "configuration";
Run Code Online (Sandbox Code Playgroud)

从你的主sass文件.

  • 谢谢,这就是我在同一时间解决问题的方法.我注意到,使用Sass内置部分而不是链接:`/*= require ./file.css.sass*/`在触及/保存/ root(application.css.sass)之前,不会编译Sass文件更新.这大大减慢了我的工作流程.除了在文件名末尾添加**.erb**以使用**assets_path**辅助方法访问资产管道之外,@ import似乎还有什么麻烦. (2认同)