Rails资产路径中的CSS未由ERB在开发中处理

Mos*_*atz 4 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 asset-pipeline

我有一个Rails应用程序,其中包含以下内容/app/assets/stylesheets/styles.css.erb:

...
#nestedbg {
    background-position: left top;
    background-image: url(<%= asset_path 'siteheader2.png' %>);
    background-repeat: repeat-x;
    background-attachment: fixed;
}
...
Run Code Online (Sandbox Code Playgroud)

当我运行rake assets:precompile然后运行时rails s -e production,一切都按预期工作.但是,当我删除预编译的资产并rails s在开发中运行时,CSS文件如上所示出现而不是被正确替换.

我试图把config.assets.compile = true/config/environments/development.rb,但这并没有帮助.

有任何想法吗?谢谢.

emr*_*ass 8

老实说,我不能说为什么在你的情况下没有正确解释,但我有一个更好的解决方法提供:完全跳过erb解释.

你可以这样做:

/* styles.css.scss */
background-image:url(image_path("siteheader2.png"));
Run Code Online (Sandbox Code Playgroud)

如果你没有机会我也建议看看SASS:它集成在Rails资产管道中,让你做一些很酷的事情,比如变量声明,嵌套,混合,......