Ruby on rails 与erb合作的Sass赢得';不编译

Ruby on rails 与erb合作的Sass赢得';不编译,ruby-on-rails,ruby,sass,asset-pipeline,erb,Ruby On Rails,Ruby,Sass,Asset Pipeline,Erb,在Rails中,filefile.css.sass.erb: .class-name width: <%= "10px" %> 。类名 宽度: 正在抛出错误: Invalid CSS after "": expected expression (e.g. 1px, bold), was "<%= "10px" %>" “在“”之后的CSS无效:预期的表达式(例如1px,粗体)为“” 难道它不应该起作用吗 更新1 仍然在努力解决这个问题,但我发现如果我将其更

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

.class-name
    width: <%= "10px" %>
。类名
宽度:
正在抛出错误:

Invalid CSS after "": expected expression (e.g. 1px, bold), was "<%= "10px" %>"
在“”之后的CSS无效:预期的表达式(例如1px,粗体)为“”
难道它不应该起作用吗

更新1 仍然在努力解决这个问题,但我发现如果我将其更改为SCSS语法(文件名和代码),仍然会导致类似的错误

Invalid CSS after " width: ": expected expression (e.g. 1px, bold), was "<%= "10px" %>;"
在“宽度:”之后的CSS无效:预期表达式(例如1px,粗体)为“
尽管如此,如果我删除
scss
扩展名,让CSS的语法与文件名
file.CSS.erb
类似,Rails确实会按预期编译

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

更新2 刚刚在上找到了关于同一问题的其他4个未回答的问题:


  • 他们中的一些人最终通过改变方法来解决这个问题。SASS文件上的ERB问题未被触及。

    正如前面所讨论的,这确实是SASS rails的一个问题

    这样写,完全解决了问题

    解决方案 添加到
    Gemfile

    gem "sass_rails_patch", "~> 0.0.1"
    
    然后运行
    bundle
    ,就可以了

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

    background-image: asset-url("rails.png")
    
    …而不是

    background-image: url("<%= image_path('rails.png') %>");
    
    背景图像:url(“”);
    
    您应该向其中添加.css,您是否尝试过
    bundle exec rake assets:precompile
    ?使用
    .sass.erb
    .css.sass.erb
    结果是相同的。并没有尝试过预编译,在开发环境中有必要吗?并没有。您使用的是什么版本的rails?您给出的示例在3.2.11…Rails 3.2.9中对我很有用。我被绊倒了,这太简单了,就是想不出来,哈哈。他们也遇到过类似的问题。不知道这是版本问题还是gem问题。我遇到的问题是,当从另一个文件导入时,它会使相应的.sass.erb文件中的所有变量
    未定义。还有谁有这个问题?!似乎对我也不起作用(Rails 4.1.0和sass Rails 4.0.3)