我有一个Rails 4应用程序并使用less-rails
gem。在main.css.less
中,我使用以下方法向网站添加背景图片:
body {
background-image: image-url("background.jpg");
}
一切都在本地工作正常,但是当我使用预编译资产推送到我的服务器时,图像网址没有更新以包含哈希。也就是说,图片现在位于public/assets/background-074c0b767cd8cfb2da93b37ea3596326.jpg
,但我的css文件仍然显示为url(/assets/background.jpg)
。
下面的链接似乎非常有前景,但没有一个推荐的解决方案有效(大多数都是针对sass
的,虽然我确实尝试了image-url
,asset-url
及其各自的{ {1}}的)。
How to reference images in CSS within Rails 4
有什么想法吗?
答案 0 :(得分:1)
“哈希”被称为asset fingerprinting,是Rails asset pipeline
的标准功能,这意味着如果一切正确,它应该可以工作:)
我们之前已经有了这方面的经验,而且你有90%的方式使用它
我建议2个修复:
<强> 1。在您的LESS中使用asset_url
:
body {
background-image: asset_url("background.jpg");
}
<强> 2。 Precompile your assets 强>
#config/environments/production.rb
config.serve_static_assets = true
#cmd
rake assets:precompile RAILS_ENV=production
这应该使您的资产保持静态,从而允许您的CSS加载它们没有问题!