【问题标题】:Is there a way to set a background image within the CSS with Rails Active Storage?有没有办法使用 Rails Active Storage 在 CSS 中设置背景图像?
【发布时间】:2021-01-20 19:59:34
【问题描述】:

我知道可以使用style 属性在html.erb 中设置背景图像,如下所示:

<div style="background-image: url('<%= rails_blob_url(object.image) %>');">
    ...
</div>

但是是否可以在 CSS 中调用图像 blob 并将其用作 div 上的类?当有一个专门的 CSS 文件时,有一个 style 属性似乎是没有组织的。

【问题讨论】:

    标签: ruby-on-rails rails-activestorage


    【解决方案1】:

    在 style.css 文件中实现 ActiveStorage URL 的一种方法是将文件扩展名更改为 style.css.erb 并像这样调用 helper

    background-image: url("<%= Rails.application.routes.url_helpers.url_for(object.image) %>") 
    

    我用过类似的助手

    Rails.application.routes.url_helpers.url_for

    因为视图助手将不再可用。

    但我认为它应该只适用于 sprocket 而不是 webpack,因为 ERB 插值只适用于 Sprockets。 Webpacker 不通过 ERB 传递资产。

    注意:我们不应该像这样使用 ActiveStorage URL,因为资产编译是在生产部署时完成的,而不是针对每个请求,因此数据会变得陈旧,而 ActiveStorage 是用于 CRUD。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 2013-06-10
      • 2012-12-15
      • 2014-10-10
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多