Rails:如何在Rails 4中引用CSS中的图像

215

在Heroku上,Rails 4存在一个奇怪的问题。当图像被编译时,它们会添加哈希值,但是在CSS中对这些文件的引用没有正确地调整名称。我是这个意思。我有一个名为logo.png的文件。但是当它出现在Heroku上时,它被视为:

/assets/logo-200a00a193ed5e297bb09ddd96afb953.png

然而CSS仍然声明:
background-image:url("./logo.png");

结果是:图片没有显示。有人遇到过这种情况吗?如何解决?

1
只是提供信息,Heroku已经确认这是一个bug...他们正在努力解决。 - Nick ONeill
你能否更新一下这个问题吗?我也遇到了同样的问题。 - Minh Danh
17个回答

1

1
当使用gem 'sass-rails'在Rails 5和bootstrap 4中时,以下内容适用于我:
在.scss文件中:
    background-image: url(asset_path("black_left_arrow.svg"));

在视图文件中(例如.html.slim):
    style=("background-image: url(#{ show_image_path("event_background.png") })");

1
你可以将CSS文件的扩展名改为.erb。例如:style.css.erb。
然后,你可以添加以下内容:
background: url(<%= asset_path 'logo.png' %>) no-repeat;

0
在Rails 4中,只需在style.css文件中使用

.hero { background-image: url("picture.jpg"); }

,只要背景图片被放置在app/assets/images中即可。

请阅读完整的问题。 - Adriano Resende

0
这对我来说行得通:
background: #4C2516 url('imagename.png') repeat-y 0 0;

0

这应该每次都能帮助你到达目的地。

background-image: url(<%= asset_data_uri 'transparent_2x2.png'%>);

0

1
这个可以工作,但是这样做不会抵消预编译资源的好处吗? - Arcolye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接