Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过资产管道携带Sass变量,Rails 3.1 rc1_Ruby On Rails_Variables_Ruby On Rails 3.1_Sass_Asset Pipeline - Fatal编程技术网

Ruby on rails 通过资产管道携带Sass变量,Rails 3.1 rc1

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

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

在样式表中不重复一些颜色代码和一般几何图形,这是一个很好的解决方案。新资产管道现在的问题是,据我所知,它将“.css.sass”文件转换为原始css,然后再将其附加到代码的其余部分

因此,如果我在“application.css”中指定:

我会遇到如下错误:

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”指令


是的,您必须@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";