首页 > 解决方案 > 在 Rails 视图中渲染内联背景图像时转义路径/url

问题描述

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

url为演示而硬编码,但实际上它是通过我的模型中的回形针附件Photo生成的(例如photo.source.url(:medium)

<% url = "/system/photos/sources/000/000/008/medium/20160820_131939" %>

<div class="photo" background-image: url(<%= url %>);>
</div>

这最终呈现以下<div>

在此处输入图像描述

从 Chrome 的检查器中复制上述内容表明它是作为键值对生成的

<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 生成的,它将在所有环境中正确生成正确的路径。

谢谢!

标签: ruby-on-railsviewspaperclip

解决方案


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


推荐阅读