Rails的图片网址4 +不包括哈希

时间:2014-01-29 20:03:00

标签: css ruby-on-rails ruby-on-rails-4 less

我有一个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-urlasset-url及其各自的{ {1}}的)。

How to reference images in CSS within Rails 4

有什么想法吗?

1 个答案:

答案 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加载它们没有问题!