使用erb的Sass无法编译
在Rails中,文件file.css.sass.erb
:
.class-name width:
抛出错误:
Invalid CSS after "": expected expression (eg 1px, bold), was ""
它不应该工作吗?
更新1
仍然在努力,但我发现,如果我将其更改为SCSS语法(文件名和代码),仍然会导致非常类似的错误。
Invalid CSS after " width: ": expected expression (eg 1px, bold), was ";"
虽然,如果我删除 scss
扩展,将CSS与文件名file.css.erb
类似的语法,Rails会按预期编译。
然而,考虑到我忘记了一些非常明显的事情,我也在考虑这可能是与sass-rails
或bug或其他东西的gem冲突。 毕竟,代码在没有SASS扩展的情况下工作。
更新2
刚刚在同一问题上找到了其他4个未解答的问题:
- scss.erb ruby代码没有执行
- 资产未通过.erb预处理器运行
- Rails erb预处理不在开发模式下进行
- 链轮sass部分erb扩展 。
他们中的一些人最终通过改变方法解决了这个问题。 SASS文件的ERB问题仍未触及。
这确实是sass-rails
一个问题,正如GitHub所讨论的那样。
所以这个人写了这个补丁 ,完全解决了这个问题。
解决方案
添加到Gemfile
:
gem "sass_rails_patch", "~> 0.0.1"
然后运行bundle
,你很好!
如果erb仅用于引用资产,则可以使用资产助手 :
background-image: asset-url("rails.png")
…代替…
background-image: url("<%= image_path('rails.png') %>");