使用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个未解答的问题:

  1. scss.erb ruby​​代码没有执行
  2. 资产未通过.erb预处理器运行
  3. Rails erb预处理不在开发模式下进行
  4. 链轮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') %>");