关于如何解决上述错误消息已经有很多问题。
答案最好的人似乎是Sass::SyntaxError Undefined Variable,遗憾的是已经很老了。
我当前(适用于Rails 4.2)解决问题的方法是@include
来自每个其他_variables.sass
文件的名为.sass
的文件,该文件需要使用{{}等变量{1}}值或color
定义。但是,如果font-family
文件可以在_variables.sass
内@import
进行application.sass
(当然,在其他任何事情之前),这将会更加方便。
我完成此操作的所有尝试(包括仅使用以下划线开头的文件名)都失败了。因此,我的问题是,如果有人知道如何在一个文件中实现SASS变量,这些文件可用于Rails 4.2上@import
中具有中心application.sass
语句的多个其他文件?
这是使用上述设置的错误消息证明。 文件:
$ ls app/assets/stylesheets/
application.sass _foundation_and_overrides.sass _list_defaults.sass _phrases.sass _translations.sass _users.sass
_bidi.sass _layout.sass _pages.sass _searches.sass _user_sessions.sass _variables.sass
application.sass:
$ cat app/assets/stylesheets/application.sass
// @import 'list_defaults'
// @import 'font-awesome'
@import '_variables'
@import '_foundation_and_overrides'
@import '_bidi'
@import '_layout'
@import '_pages'
@import '_phrases'
// @import 'searches'
// @import 'translations'
// @import 'user_sessions'
// @import 'users'
_variables.sass:
$ cat app/assets/stylesheets/_variables.sass
$white: #ffffff
$dark_white: #eaeaea
$medium_grey: #eeeeee
$very_light_red: #dbaca4
$light_red: #dc7869
$dark_red: #db1f00
$very_light_green: #b2ebd2
$light_green: #83dab3
$dark_green: #008f4e
$very_light_blue: #b1d8d9
$light_blue: #64c1c4
$dark_blue: #00868b
$font_sans: 'Open Sans', sans
$font_serif: 'Vollkorn', sans-serif
$font_arabic: 'Lateef', 'Amiri', 'Times New Roman', sans
_bidi.sass:
$ cat app/assets/stylesheets/_bidi.sass
// @import '_variables'
*[lang=ar],
*[lang=fa],
*[lang=ur],
*[lang=ps]
direction: rtl
unicode-bidi: bidi-override
font-family: $font_arabic
*[lang=de],
*[lang=en],
*[lang=ku]
direction: ltr
unicode-bidi: bidi-override
耙跑:
$ rake assets:precompile 2>&1 | grep -i error
Sass::SyntaxError: Undefined variable: "$font_arabic".