在 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 这样做?它似乎试图逃避路径中的正斜杠?
我尝试了各种形式的html_safe
和escaping/unescaping,但没有成功。
image_path
和 asset_path
在这里不适用,因为我的路径是由回形针 gem 生成的,它将在所有环境中正确生成正确的路径。
谢谢!
background-image
属性 是 CSS 并且需要在样式属性中。
即 <div class="photo" style="background-image: url('<%= url %>');" >
我在 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 这样做?它似乎试图逃避路径中的正斜杠?
我尝试了各种形式的
html_safe
和escaping/unescaping,但没有成功。image_path
和asset_path
在这里不适用,因为我的路径是由回形针 gem 生成的,它将在所有环境中正确生成正确的路径。
谢谢!
background-image
属性 是 CSS 并且需要在样式属性中。
即 <div class="photo" style="background-image: url('<%= url %>');" >