是否有一种方法来设置背景图像的CSS与Rails活动存储?



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

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

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

在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

因为视图帮助器将不再可用。

但我相信它应该只适用于链轮而不是webpack,因为ERB插值只适用于链轮。Webpacker不通过ERB传递资产。

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

最新更新