没有关于如何设置 Rails 以使用 ActiveStorage 提供 WebP 图像的良好信息。
有人可以解释一下怎么做吗?
我尝试:
application.rb
config.active_storage.web_image_content_types = %w(image/jpeg image/png image/webp
image/jpg)
并在查看:
<% image_tag( f.image_1.variant(resize_to_limit: [800,600], format: :webp) ) %>
但这适用于开发(我看到了 jpeg 的链接,但是当我使用鼠标右键并“将图像另存为”时,图像被保存为 .WebP
在生产中我看到浏览器没有图像默认图标并链接到.jpg
RoR死了...
我通过结合格式和转换来实现此功能。
image.variant(resize_to_limit: [800,600], convert: :webp, format: :webp)
URL 中的文件名仍然是
.jpg
,或者任何原始文件类型。还没想出如何解决这个问题。
我正在使用 Rails 7,这对我来说就像一个魅力。
has_many_attached :images do |attachable|
attachable.variant :thumb, {resize_to_limit: [500, 500], convert: :webp, saver: { subsample_mode: "on", strip: true, interlace: true, quality: 80 }}
end
我正在使用 this gem 作为我的图像处理库。
gem 'ruby-vips', '~> 2.1', '>= 2.1.4'
。
您可以在
ruby-vips
库这里看到所有可以调用的方法
可以使用“转换”
image.variant(resize_to_limit: [800,600], convert: :webp)
使用
format
,而不是 convert
。对我有用
(article.image.variant(resize_to_fill: resize_size, format: 'webp')