Ruby on rails 与erb合作的Sass赢得';不编译
在Rails中,fileRuby 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 仍然在努力解决这个问题,但我发现如果我将其更
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)