在 Rails 视图中渲染内联背景图像时转义 path/url

Escaping the path/url when rendering an inline background image in Rails Views

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

url 是为了演示而硬编码的,但实际上它是通过我的 Photo 模型中的 paperclip attachment 生成的(例如 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和escaping/unescaping,但没有成功。

  2. image_pathasset_path 在这里不适用,因为我的路径是由回形针 gem 生成的,它将在所有环境中正确生成正确的路径。

谢谢!

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