Rails 4 + Apache + Passenger:图像资源不会显示为背景图像

时间:2013-10-14 17:24:00

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

我正在尝试使用background-image显示图像,但我尝试过的任何内容都无法正常工作。但是,视图中的image_tag()工作得很好。

我试过了:

background-image: url("images/icons/heart.png")

background-image: url("icons/heart.png")

background-image: image-url("images/icons/heart.png")

background-image: image-url("icons/heart.png")

background-image: asset-url("images/icons/heart.png")

background-image: asset-url("/icons/heart.png")

background-image: asset-data-url("images/icons/heart.png")

background-image: url(image-path("icons/user_comment.png"))

每次重新开始rake assets:precompile

只有asset-data-url有效,但是因为它将图像数据存储到CSS中,这是多余的。我无论如何都不能让它在生产中呈现正确的CSS。它始终出现在background-image: url("/images/icons/heart.png")或类似的地方,而不应用最后的哈希值。

其中大部分都在开发中。

为什么image_tag会生成正确的网址,而这些网址却不会?

2 个答案:

答案 0 :(得分:3)

发现问题,我正在错误地编译资产。

我需要运行

bundle exec rake assets:precompile RAILS_ENV=production

而不仅仅是rake assets:precompile

答案 1 :(得分:0)

这是一个简单的CSS文件还是SASS / SCSS文件?这可能是一个非常基本的建议,但对我来说,这听起来像你正在使用直接的CSS,我不认为图像url等指令将被评估。