基本上我有一个曾经在3.0.x中完美运行的结构,现在它因undefined variable
错误而中断。
application.css.sass
:
//=require 'main'
main.css.sass
:
@import 'partials/base'
@import 'partials/header'
非常简单的东西。
我在_header.css.sass
上收到错误
因为它使用_base.css.sass
之前我没有这个错误,对我来说没有任何意义,因为我们在导入_base.css.sass
的相同上下文中导入_header.css.sass
上的变量。
我是否还必须在每个部分导入_base.css.sass
?
main.css.sass
如果不能在你需要的部分中使用全局变量,那么它有什么意义呢?
如果我的结构完全错误,请给我一个替代方案,我喜欢建议。
答案 0 :(得分:26)
你不能使用//=require
来包含“动态”SASS之类的东西,比如mixins和变量,因为它只用于包含最“静态”的东西(比如纯CSS)。您必须@import
application.css.sass
中的所有文件{{1}}。 Railscasts在episode #268中提供了很好的解释。
答案 1 :(得分:2)
原始主题有一个简单的解决方案。您的应用程序和主要css文件应该是scss文件。这意味着您可以使用已知的语法:
/*
*= require_self
*= require main
*/
在main.scss中,你可以像这样导入部分:
@import 'partials/base'
@import 'partials/header'
这些文件是sass文件,您可以从SASS的优点中受益; - )
答案 2 :(得分:2)
我认为我遇到了同样的问题以及在@imports之前声明变量的帮助。希望这有助于某人=)。
答案 3 :(得分:1)
显然你必须使用application.css.sass
作为清单,否则什么都不会有效。
基本上你可以分开所有东西,但是需要从应用程序文件中调用它们,因为范围不是共享的。
如果你问我,有点执行......
答案 4 :(得分:0)
这是一个sass文件。使用@import
中的application.css.sass
代替require
。 require
适用于没有导入系统的普通css或模板引擎。