12

在 Rails 中,文件file.css.sass.erb

.class-name
    width: <%= "10px" %>

正在抛出错误:

Invalid CSS after "": expected expression (e.g. 1px, bold), was "<%= "10px" %>"

它不应该工作吗?

更新 1

仍在努力解决它,但我发现如果我将其更改为 SCSS 语法(文件名和代码),它仍然会导致非常相似的错误。

Invalid CSS after " width: ": expected expression (e.g. 1px, bold), was "<%= "10px" %>;"

虽然,如果我删除scss扩展名,将 CSS 类似的语法保留为 filename ,file.css.erbRails 会按预期编译。

然而,考虑到我忘记了一些非常明显的事情,我也在考虑这可能是一个 gem 冲突sass-rails,或者一个错误,或者什么。毕竟,代码在没有 SASS 扩展的情况下工作。

更新 2

刚刚在同一问题上发现了其他 4 个未回答的问题:

  1. scss.erb 红宝石代码未执行
  2. 资产未通过 .erb 预处理器运行
  3. Rails erb 预处理未在开发模式下发生
  4. sprockets sass 部分 erb 扩展

他们中的一些人最终通过改变方法解决了这个问题。SASS 文件上的 ERB 问题保持不变。

4

2 回答 2

13

正如GitHub 上sass-rails所讨论的,这确实是一个问题。

于是这家伙写了这个补丁,彻底解决了这个问题。

解决方案

添加到Gemfile

gem "sass_rails_patch", "~> 0.0.1"

然后跑bundle,你很好!

于 2013-01-13T16:08:41.580 回答
11

如果 erb 仅用于引用资产,则可以使用资产助手:

background-image: asset-url("rails.png")

...代替...

background-image: url("<%= image_path('rails.png') %>");
于 2017-02-21T13:35:25.707 回答