SASS变量未正确解析 – 未定义变量:“$ ct-white”

我第一次使用SASS,我的变量似乎已经停止工作了。 我在application.css.scss文件中有以下代码:

 *= require_self */ @import "layout"; @import "colors"; ... @import "text"; 

在我的部分_colors.css.scss文件中,有:

 ... $ct-white: #F8F8F8 !global; 

在我的部分_layout.css.scss文件(Rails默认布局文件)中:

 /* Site-wide layout syntax */ body { background-color: $ct-white; } 

我知道_layout.css.scss文件正在加载,因为当我设置body { background-color: #F8F8F8; }时,页面上的其他样式工作正常body { background-color: #F8F8F8; } body { background-color: #F8F8F8; } 。 由于某种原因,该变量未被正确解析。

有什么想法吗?

您在layout后导入colors ,因此您在colors中定义的变量不可用于layout 。 你可以简单地颠倒这两行的顺序。 在SASS,import订单很重要。

如果你正在使用sass-rails gem, 它使用sass 3.2.0 so !global会抛出错误。