Rails 6.1.4 - Ruby 3.0.1 - ActiveStorage 和 WebP 图像格式

问题描述 投票:0回答:4

没有关于如何设置 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死了...

ruby-on-rails ruby ruby-on-rails-6 rails-activestorage webp
4个回答
1
投票

我通过结合格式和转换来实现此功能。

image.variant(resize_to_limit: [800,600], convert: :webp, format: :webp)

URL 中的文件名仍然是

.jpg
,或者任何原始文件类型。还没想出如何解决这个问题。


1
投票

我正在使用 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
这里看到所有可以调用的方法


0
投票

可以使用“转换”

image.variant(resize_to_limit: [800,600], convert: :webp)

0
投票

使用

format
,而不是
convert
。对我有用

(article.image.variant(resize_to_fill: resize_size, format: 'webp')
© www.soinside.com 2019 - 2024. All rights reserved.