Seuil de redimensionnement d'image Composer

Suite à la discussion sur L’optimisation des images côté client activée par défaut :

Je suis l’administrateur d’une instance Discourse auto-hébergée destinée à des photographes locaux, où nous téléchargeons principalement des médias de haute qualité. Je souhaiterais modifier la largeur d’image par défaut pour que le compositeur les redimensionne vers le bas, mais je ne la trouve nulle part dans les paramètres.

Le bot de demande m’a indiqué de chercher composer media optimization image resize dimensions threshold, mais je me demande si ce paramètre a été déprécié ou masqué, car le seul que je parviens à trouver est composer media optimization image enabled.

En résumé, je souhaite simplement que les images téléchargées via le compositeur soient redimensionnées à une largeur maximale de 1440 px au lieu de 1920 px, et éventuellement avoir la possibilité de ne redimensionner que le côté le plus long de l’image (par exemple, une image en portrait devrait être redimensionnée selon sa hauteur plutôt que sa largeur).


Version 2026.5.0-latest ( af1090fa6f )

Il s’agit d’un paramètre caché, il peut donc être modifié dans la console Rails.

Mais je pense qu’il faut l’ajouter ici :

Pour le modifier :

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

L’application doit-elle être recompilée après avoir apporté cette modification ?

Non, mais vous devez rafraîchir la page.

Existe-t-il un moyen de vérifier que je l’ai configuré correctement ? Le rafraîchissement forcé (Ctrl+F5) n’a pas semblé fonctionner, alors j’ai reconstruit l’application de toute façon, sans que cela ne change quoi que ce soit. Les images continuent d’être redimensionnées à 1920 px.

/var/www/discourse# rails c
Chargement de l'environnement de production (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

Je fais généralement un redémarrage lorsque je modifie un paramètre du site

./launcher restart app

Dans la console Rails, quelle valeur est renvoyée lorsque vous saisissez : SiteSetting.composer_media_optimization_image_resize_dimensions_threshold ?

Je viens de tester ce changement spécifique et il a été mis à jour.

Elle retourne 1440.

Cette image a une résolution originale de 3089x2048, et voici à quoi elle est redimensionnée après avoir été téléchargée à l’instant à titre de test.

La variable composer_media_optimization_image_resize_dimensions_threshold détermine le moment où elle se déclenche.

Si vous souhaitez que l’image soit redimensionnée à 1440, vous devez définir cette valeur dans composer_media_optimization_image_resize_width_target.

Hmm, ça ne fonctionne pas.

J’ai défini ces deux valeurs sur 1440, puis, pour être prudent, j’ai exécuté /var/discourse/launcher rebuild app, mais les images sont toujours redimensionnées à 1920.

edit : en fait, après avoir effectué une reconstruction puis revenir à rails, les deux variables sont de nouveau indéfinies. Quelque chose pourrait-il les réécrire avec les valeurs par défaut ?

En fait, même après avoir quitté rails et simplement y revenir, j’obtiens ceci :

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)

Ce n’est pas ainsi que l’on vérifie un paramètre ; vous devez préfixer le nom du paramètre de site par SiteSetting..

C’est réglé ! J’ai tout de même complètement confondu les résolutions : dans ma tête, je pensais à du 1440p, qui correspond à la hauteur et non à la largeur :squinting_face_with_tongue:. Imaginez ma surprise de voir les images ressortir encore plus petites qu’avant !

Nous n’avons qu’un seul commutateur pour la largeur, donc vous voulez probablement dire 2560 à la place, n’est-ce pas ?

Je comprends tout à fait votre souhait de pouvoir travailler sur l’autre dimension. Le choix de se concentrer uniquement sur la largeur était un compromis lors de la création initiale, car il y avait déjà trop de commutateurs. Ces dernières années, notre équipe a même caché ce paramètre plus profondément, ce qui rend difficile la demande d’ajouts supplémentaires.

Et si nous modifions le fonctionnement pour qu’il agisse sur le plus grand côté, en choisissant dynamiquement la largeur ou la hauteur ?