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.