ruby on rails 3-SASS全局变量未传递给部分



基本上,我有一个结构,它曾经在3.0.x中完美工作,现在它因undefined variable错误而中断。

  • 部分
    • _base.css.sass
    • _header.css.sas
  • main.css.sass
  • application.css.sass

application.css.sass:

//=require 'main'

main.css.sass:

@import 'partials/base'
@import 'partials/header'

很简单的东西。

我在_header.css.sass上遇到错误因为它使用了_base.css.sass 上定义的变量

我以前没有遇到过这个错误,这对我来说毫无意义,因为我们在导入_header.css.sass的上下文中导入_base.css.sass上的这些变量。

我是否也必须在每个部分上导入_base.css.sassmain.css.sass需要全局变量,如果它们不能在您需要的部分中使用,那么它们有什么意义?

如果我的结构完全错误,请给我一个替代方案,我很乐意提供建议。

您不能使用//=require来包含"动态"SASS内容,如mixin和变量,因为它只用于包含最"静态"的内容(如纯CSS)。你必须@import你在application.css.sass中的所有文件。Railscasts在第268集中对此进行了很好的解释。

对于原始主题有一个简单的解决方案。您的应用程序和主css文件应该是scss文件。这意味着您可以使用已知的语法:

/*
 *= require_self
 *= require main
 */

在main.scss中,您可以导入这样的部分:

@import 'partials/base'
@import 'partials/header'

这些文件是sass文件,您可以从sass的伟大中受益;-)

我想我也遇到了同样的问题,帮助我的是在@imports之前声明变量。希望这能帮助到别人。

显然,您必须使用application.css.sass作为清单,否则什么都不起作用。

基本上,您可以分离所有内容,但它们需要从应用程序文件中调用,因为作用域是不共享的。

如果你问我的话,有点太强制了…

这是一个sass文件。在application.css.sass中使用@import,而不是requirerequire适用于没有导入系统的普通css或模板引擎。

相关内容

  • 没有找到相关文章

最新更新