Umbral de redimensionamiento de imagen de Composer

Continuando la discusión de Optimización de imágenes del lado del cliente habilitada por defecto:

Soy administrador de una instancia de Discourse autoalojada para fotógrafos locales, donde principalmente subimos medios de alta calidad. Me gustaría cambiar el ancho de imagen predeterminado para que el editor lo redimensione hacia abajo, pero no lo veo en ninguna parte de la configuración.

El bot de preguntas me dijo que buscara composer media optimization image resize dimensions threshold, pero me pregunto si esta configuración ha sido obsoleta o oculta, ya que la única opción que encuentro es composer media optimization image enabled.

Básicamente, solo quiero que las imágenes subidas mediante el editor se redimensionen a un ancho máximo de 1440 px en lugar de 1920 px, y posiblemente tener la opción de redimensionar solo el lado más largo de la imagen (por ejemplo, una imagen vertical debería redimensionarse según su altura en lugar de su ancho).


Versión 2026.5.0-latest ( af1090fa6f )

Es una configuración oculta, por lo que puede modificarse en la consola de Rails.

Pero creo que debería añadirse aquí:

Para cambiarlo:

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

¿Necesita la aplicación ser recompilada después de realizar este cambio?

No, pero necesitas actualizar la página.

¿Hay alguna forma de verificar que lo he configurado correctamente? La recarga forzada (Ctrl+F5) no pareció funcionar, así que reconstruí la aplicación de todos modos, lo cual tampoco marcó diferencia. Las imágenes siguen redimensionándose hasta 1920 px.

/var/www/discourse# rails c
Cargando entorno de producción (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

Suelo reiniciar al cambiar una configuración del sitio

./launcher restart app

En la consola de Rails nuevamente, ¿qué valor devuelve al ingresar: SiteSetting.composer_media_optimization_image_resize_dimensions_threshold?

Acabo de probar este cambio específico y se actualizó.

Devuelve 1440

Esta imagen tiene una resolución original de 3089x2048, y esto es a lo que se redimensionó después de subirla ahora mismo como prueba.

composer_media_optimization_image_resize_dimensions_threshold controla cuándo se activa.

Si deseas que se redimensione a 1440, debes configurarlo como composer_media_optimization_image_resize_width_target.

Hmm, no hay suerte.

He establecido ambos valores en 1440 y, por seguridad, ejecuté /var/discourse/launcher rebuild app, pero las imágenes siguen redimensionándose a 1920.

edición: en realidad, después de hacer un rebuild y volver a rails, las dos variables vuelven a estar indefinidas. ¿Podría haber algo que las esté sobrescribiendo con los valores predeterminados?

Incluso después de salir de rails y volver a entrar, obtengo esto:

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)

Esa no es la forma de verificar una configuración; debes anteponer SiteSetting. al nombre de la configuración del sitio.

¡Eso funcionó! Aunque estaba totalmente equivocado con las proporciones de resolución, en mi cabeza pensaba en 1440p, que es la altura, no el ancho :stuck_out_tongue: ¡Imagina mi sorpresa al ver que las imágenes ahora salen aún más pequeñas que antes!

Solo tenemos un interruptor para el ancho, así que probablemente te refieres a 2560 en su lugar, ¿verdad?

También entiendo lo que dices sobre la capacidad de trabajar en la otra dimensión. Optar por solo el ancho fue un compromiso cuando construí esto por primera vez, ya que ya hay demasiados interruptores. En los últimos años, nuestro equipo incluso ha ocultado aún más la configuración, por lo que es complicado pedir más en ese sentido.

¿Quizás podríamos cambiarlo para que funcione en el lado más grande, seleccionando dinámicamente ya sea el ancho o la altura?