Ruby on rails 通过资产管道携带Sass变量,Rails 3.1 rc1
我最近将我的一个Rails 3.0项目与3.1 rc1进行了分支,以尝试新的资产管道。在使用3.1之前,我一直在项目中使用Sass,因此我在一个单独的配置文件中设置了一些变量和函数,并让所有其他Sass文件在第一行导入该文件 在样式表中不重复一些颜色代码和一般几何图形,这是一个很好的解决方案。新资产管道现在的问题是,据我所知,它将“.css.sass”文件转换为原始css,然后再将其附加到代码的其余部分 因此,如果我在“application.css”中指定: 我会遇到如下错误:Ruby on rails 通过资产管道携带Sass变量,Rails 3.1 rc1,ruby-on-rails,variables,ruby-on-rails-3.1,sass,asset-pipeline,Ruby On Rails,Variables,Ruby On Rails 3.1,Sass,Asset Pipeline,我最近将我的一个Rails 3.0项目与3.1 rc1进行了分支,以尝试新的资产管道。在使用3.1之前,我一直在项目中使用Sass,因此我在一个单独的配置文件中设置了一些变量和函数,并让所有其他Sass文件在第一行导入该文件 在样式表中不重复一些颜色代码和一般几何图形,这是一个很好的解决方案。新资产管道现在的问题是,据我所知,它将“.css.sass”文件转换为原始css,然后再将其附加到代码的其余部分 因此,如果我在“application.css”中指定: 我会遇到如下错误: Sass::S
Sass::SyntaxError
Undefined variable: "$interactive".
当我尝试从访问文件时:http://localhost:3000/assets/application.css
有什么想法吗?Sass支持。这样,您就可以将单独的配置包含在_configuration.sass中,并使用
@import "configuration";
从您的主sass文件中。不幸的是,我发现sass变量是特定于页面的 如果要在所有文件中携带变量,请删除
*=require_tree.
从application.css.scss文件中删除行,并将其替换为@import“layout.css.scss”手动导入每个sass文件的代码>指令
是的,您必须@import each file不要忘记行末尾的分号(如果您使用SCSS语法)谢谢,这就是我同时解决问题的方法。我注意到,使用Sass内置的partials而不是链轮:/*=require./file.css.Sass*/
将不会编译Sass文件,直到触及/保存/更新根目录(application.css.Sass)。这大大减慢了我的工作流程。另外,@import在使用assets\u path helper方法在文件名末尾添加.erb以访问资产管道时似乎遇到了问题。我发现了与Philip相同的问题。即使在使用分部时,如果您将.erb
添加到文件名中,变量也不会被带入,您必须在每个要使用分部的文件上导入分部(而不是像我以前那样在“主”文件上)。我只是想自己弄清楚这件事,但是我相信你应该在你的舱单上添加一个depen_-on指令,用于你@import的任何部分。这对我不起作用。我在application.css中添加了包含变量@import'layout.scss'的文件。但是,如果我不在另一个file.scss中导入这个文件,它会抛出未定义的变量错误。
@import "configuration";