首页 文章

使用erb的Sass无法编译

提问于
浏览
9

在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" %>;"

虽然,如果我 remove 扩展,留下CSS与文件名 file.css.erb 类似的语法,Rails确实按预期编译 .

然而,考虑到我也认为这可能是与 sass-rails 的宝石冲突,或者是一个错误,或者某种东西 . 毕竟,代码在没有SASS扩展的情况下工作 .

更新2

刚刚在同一问题上找到了其他4个未解答的问题:

其中一些人最终通过改变方法解决了这个问题 . SASS文件的ERB问题仍然没有改变 .

2 回答

  • 13

    这确实是 sass-rails 的问题,如on GitHub所述 .

    所以this guy写了this patch,这完全解决了这个问题 .

    解决方案

    添加到 Gemfile

    gem "sass_rails_patch", "~> 0.0.1"
    

    然后运行 bundle ,你很好!

  • 8

    如果erb仅用于引用资产,则可以使用asset helpers

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

    ...代替...

    background-image: url("<%= image_path('rails.png') %>");
    

相关问题