1

比我聪明的头脑:

我们有几个 SCSS 部分,它们定义了 mixin、变量和其他有用的东西。我们现在需要在这些部分之一中使用一些嵌入的 ruby​​,如下所示:

_partial.scss.erb

 $text-color: #555555;
 <%= "" %>

应用程序.scss

@import "partial"
.text {color: $text-color;}

如果文件被命名_partial.scss它工作正常(当然没有任何红宝石)。命名时.erb,我收到一个错误,即$text-color未定义变量。

我正在使用sass_rails_patch宝石。我不能肯定地说,但我相信 _partial.scss.erb 会一直编译到 _partial.css 中,然后导入到 app.scss 中。这可能$text-color是被剥离的原因。

关于如何让这个流程按我期望的方式工作有什么建议吗?我希望:

  1. 评估文件中的 ruby .erb​​,生成有效.scss的 .
  2. 运行@import语句.scss
  3. 做所有其他的 SCSS 编译工作,生成.css.
4

1 回答 1

0

您很可能希望在 SCSS 文件中使用 Ruby 脚本来构建资产路径(这必须是唯一的原因)。如果是这个原因,您可以使用 SCSS 函数来构建它们:

代替:

background-image: url(<%= asset_path('general/side_shadow.png') %>);

请改用此 CSS/SCSS 函数:

background-image: url(asset-path("general/side_shadow.png", image));

这是 SCSS 助手的文档:http ://rubydoc.info/github/petebrowne/sprockets-sass/master/Sprockets/Sass/Functions

希望这可以帮助

于 2013-11-14T06:25:31.270 回答