我知道可以使用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。