如何使用活动存储动态更改背景图像CSS属性

时间:2018-08-27 18:39:13

标签: css ruby-on-rails ruby

我如何使用:

<%=image_tag(url_for(object.image)%>

将图片网址放置在每个对象上

<div class='bg' style="background:url('img.jpg')"></div>

我使用Rails主动存储。我尝试过:

<div "style="background: url(<%=image_tag(@object.image)%>">

,但未渲染图像。这是HTML输出:

<div style="background: url(<img src=" http:="" localhost:3000="" rails="" active_storage="" blobs="" eyjfcmfpbhmionsibwvzc2fnzsi6ikjbahbhdz09iiwizxhwijpudwxslcjwdxiioijibg9ix2lkin19--45640b74829f35f71ed0d53b6c237f5257810f29="" beer_lager_bg.jpg"="">

1 个答案:

答案 0 :(得分:1)

对于您的具体情况,您只需要输入:

<div class='bg' style="background: url(<%= url_for(object.image) %>) no-repeat;"></div>

请记住:CSS不是HTML,image_helper将创建一个<img>标签,而CSS(style="...")则不需要它!

但是正确的方法是:

*.css - *.scss
.bg {
  /* The image used */                 /*accepts a full URL*/ 
  background-image: asset_path(url_for(object.image));}

此处有更多信息:https://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-asset_path