Heroku无法从资源加载图像

时间:2018-04-26 20:45:23

标签: css ruby-on-rails

我在assets/images中有一个图片,我想将它设置为主页上的背景,指的是给定的类,但我在生产Heroku中看不到image

application.scss

.has-bg-img { background: url('img.PNG'); center center; background-size:cover; }

6 个答案:

答案 0 :(得分:0)

您必须设置完整路径,例如url('localhost/apps/assets/images/myimg.jpg')

答案 1 :(得分:0)

如果您的资源不是静态的并且已投放到您的回购协议中,并且您尝试引用动态上传的图片,则可能需要了解如何使用Heroku's ephemeral filesystem

答案 2 :(得分:0)

您可以尝试image-urlasset-url助手 Asset Pipeline

编辑: 实际上,我不确定你的语法

.has-bg-img {
  background-image: url('img.PNG');
  background-position: center center;
  background-size:cover;
}

它应该更好。

答案 3 :(得分:0)

在我的Rails应用程序中,我将文件名更改为以.scss.erb结尾,然后将以下内容作为示例。顶部的评论,然后是示例。

//= depend_on_asset "sprite-article-r4.svg"
.contents {
  background-image:url('<%= asset_path("sprite-article-r5.svg") %>');
}

引用此SO question

答案 4 :(得分:0)

在Rails中,您必须将目录名称添加到url。为您的案例更改

.has-bg-img { background: url('img.PNG'); center center; background-size:cover; }

.has-bg-img { background: image-url('img.PNG'); center center; background-size:cover; }

这是因为您将图像存储在图像(资产/图像)目录中。

答案 5 :(得分:0)

尝试以下

.has-bg-img { 
    background-image: asset-url('img.png'); 
    background-size: cover; 
}

这应该有用,我不知道您使用center center;的原因我认为这在语法上无效,请参阅此Horizontal & Vertical Align