Порог изменения размера изображения в Composer

Продолжаем обсуждение из темы Оптимизация изображений на стороне клиента включена по умолчанию:

Я являюсь администратором самохостинговой инсталляции Discourse для местных фотографов, где мы в основном загружаем медиафайлы высокого качества. Я хотел бы изменить ширину изображения по умолчанию для редактора сообщений, чтобы оно уменьшалось до меньшего размера, но не могу найти эту настройку нигде в параметрах.

Бот-помощник посоветовал мне поискать 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.

редактирование: на самом деле после выполнения rebuild и возврата в 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)