Composer 图像调整大小阈值

继续讨论 客户端图像优化默认启用

我是一家本地摄影师自托管 Discourse 实例的管理员,我们主要上传高质量媒体。我想更改编辑器中图像缩放的默认宽度,但在设置中找不到相关选项。

Ask Bot 提示我查找 composer media optimization image resize dimensions threshold,但我怀疑该设置是否已被弃用或隐藏,因为我目前只能找到 composer media optimization image enabled 这一项设置。

简单来说,我只希望使用编辑器上传的图像最大宽度被调整为 1440 像素,而不是 1920 像素,并且最好能提供一个选项,仅对图像的较长边进行缩放(例如,竖版图像应按高度而非宽度进行缩放)。


版本 2026.5.0-latest (af1090fa6f)

这是一个隐藏设置,因此可以在 Rails 控制台中进行修改。

但我觉得需要将其添加到此处:

修改方法如下:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.composer_media_optimization_image_resize_dimensions_threshold = 1440
exit

进行此更改后是否需要重新构建应用?

不,但您需要刷新页面。

有没有办法验证我是否配置正确?硬刷新(Ctrl+F5)似乎没有生效,所以我重新构建了应用,但也没有任何变化。图片仍然被压缩到 1920 像素。

/var/www/discourse# rails c
正在加载生产环境 (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

我通常在更改站点设置时会执行重启操作

./launcher restart app

再次在 Rails 控制台中,当你输入:SiteSetting.composer_media_optimization_image_resize_dimensions_threshold 时,它会返回什么值?

我刚刚测试了这项具体更改,它已更新。

它返回 1440

这张图片的原始分辨率为 3089x2048,以下是刚刚作为测试上传后它被调整到的尺寸。

composer_media_optimization_image_resize_dimensions_threshold 控制其触发时机。

若要将其调整至 1440 像素,请将 composer_media_optimization_image_resize_width_target 设置为该值。

嗯,不行。

我把这两个值都设为 1440,然后为了保险起见执行了 /var/discourse/launcher rebuild app,但图片仍然被缩放到 1920。

编辑:实际上,在执行重建并返回 Rails 后,这两个变量又变回未定义状态。是否有某个进程将它们覆盖回了默认值?

实际上,即使退出 Rails 再重新进入,我也会遇到以下问题:

discourse(prod)> composer_media_optimization_image_resize_dimensions_threshold
(discourse):1:in '<main>': undefined local variable or method 'composer_media_optimization_image_resize_dimensions_threshold' for main (NameError)

检查设置的方式不对,你需要在设置名称前加上 SiteSetting.

搞定啦!不过我的分辨率比例完全搞错了,我脑子里想的是1440p,那是高度而不是宽度:stuck_out_tongue: 没想到图片现在反而比以前更小了,真是让我大吃一惊。

我们只有一个宽度切换选项,所以您指的应该是 2560 吧?

另外,我理解您关于能够操作另一个维度的需求。当初构建此功能时,为了减少过多的切换选项,我们只选择了宽度,这是一种妥协。近年来,我们的团队甚至将该设置隐藏得更深,因此很难在此处要求更多功能。

或许我们可以改为让它作用于最大边,动态选择宽度或高度?

是的,我现在把它设置为 2560 了,效果非常好。

如果能动态选择较长的一边就对我更有帮助了,因为我们的许多图片都是纵向的,如果在上传前不进行缩放,它们现在会显得不成比例地大。

感谢您的帮助!

是否有已知的方法可以绕过编辑器自动调整图像大小的功能?

我的一个用户刚刚在一个新话题中上传了 8 张图片;其中只有 3 张按预期被缩小到了 2560 像素,而其余 5 张似乎保持了原始分辨率。