Sass :: SyntaxError未定义变量

时间:2016-01-14 13:26:09

标签: ruby-on-rails ruby-on-rails-4 sass asset-pipeline

关于如何解决上述错误消息已经有很多问题。

答案最好的人似乎是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".

0 个答案:

没有答案