【问题标题】:SASS global variables not being passed to partialsSASS 全局变量未传递给局部变量
【发布时间】:2011-09-10 07:07:30
【问题描述】:

基本上,我有一个在 3.0.x 中可以完美运行的结构,现在它因undefined variable 错误而中断。

  • 部分
    • _base.css.sass
    • _header.css.sass
  • 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.sass? main.css.sass 需要全局变量,如果它们不能在您需要的自己的部分中使用它们有什么意义?

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

【问题讨论】:

标签: ruby-on-rails-3 sass assets


【解决方案1】:

显然您必须使用 application.css.sass 作为清单,否则将无法正常工作。

基本上您可以将所有内容分开,但需要从应用程序文件中调用它们,因为范围不共享。

如果你问我,有点太强制了......

【讨论】:

  • 您能否详细说明“您必须使用……作为清单”的意思?我使用application.css.sass 作为我的主文件,我使用@import 我的所有其他文件,但我仍然遇到与上述相同的问题。
  • 您正在使用文件名为 .scss 的 .sass
  • 谢谢,这是一个错字@raulriera
  • 嗯,它现在对我有用好几次了。为了使声明的变量和 mixin 在同一个文件上工作,您必须使用 sass 导入它们,而不是使用 sprockets。 @马克
  • 我正在使用 sass 导入语句,但在预编译(使用 Heroku)时,其他文件中的变量不可用。我通过在每个其他 sass 文件中导入带有变量的 sass 文件来暂时“修复”问题,但这远非理想的解决方案。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您不能使用//=require 来包含“动态”的 SASS 内容,例如 mixins 和变量,因为它仅用于包含最“静态”的内容(例如纯 CSS)。你必须@importapplication.css.sass 中的所有文件。 Railscasts 在episode #268 中对此提供了很好的解释。

    【讨论】:

      【解决方案4】:

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

      /*
       *= require_self
       *= require main
       */
      

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

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

      这些文件是 sass 文件,您可以从 SASS 的优点中受益 ;-)

      【讨论】:

        【解决方案5】:

        我想我遇到了同样的问题,在@imports 之前声明变量有帮助。希望这对某人有帮助 =)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-09-02
          • 2012-12-07
          • 1970-01-01
          • 2014-05-14
          • 1970-01-01
          • 2012-06-21
          • 1970-01-01
          相关资源
          最近更新 更多