代码之家  ›  专栏  ›  技术社区  ›  user2490003

在Rails视图中呈现内联背景图像时转义路径/url

  •  0
  • user2490003  · 技术社区  · 6 年前

    我在ERB模板中有以下Rails视图,在其中我设置了一个内联样式的背景图像。

    (在 url 是为了演示而硬编码的,但实际上它是通过 paperclip attachment 在我的 Photo 型号(例如。 photo.source.url(:medium) )

    <% url = "/system/photos/sources/000/000/008/medium/20160820_131939" %>
    
    <div class="photo" background-image: url(<%= url %>);>
    </div>
    

    这最终将呈现以下内容 <div>

    enter image description here

    从Chrome的inspector复制上面的内容,会发现它是作为键值对生成的

    <div class="photo" background-image:="" url(="" system="" photos="" sources="" 000="" 008="" medium="" 20160820_131939);="">
    </div>
    

    为什么Rails要这么做?它似乎是在试图逃离前面的道路上的刀砍?

    1. 我尝试了各种形式的 html_safe 逃走,但没有运气。

    2. image_path asset_path 不适用于此处,因为我的路径是由回形针gem生成的,它将在所有环境中正确地生成正确的路径。

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dipil    6 年前

    这个 background-image 属性是CSS,需要在样式属性内。 即 <div class="photo" style="background-image: url('<%= url %>');" >