Limite de redimensionamento de imagem do Composer

Continuando a discussão de Otimização de imagens no lado do cliente ativada por padrão:

Sou administrador de uma instância do Discourse auto-hospedada para fotógrafos locais, onde geralmente carregamos mídias de alta qualidade. Gostaria de alterar a largura padrão das imagens no editor para que sejam redimensionadas para baixo, mas não estou encontrando essa opção em nenhum lugar nas configurações.

O bot de perguntas me indicou procurar por composer media optimization image resize dimensions threshold, mas me pergunto se essa configuração foi descontinuada ou ocultada, pois a única configuração que consigo encontrar é composer media optimization image enabled.

Basicamente, quero apenas que as imagens carregadas pelo editor sejam redimensionadas para uma largura máxima de 1440px em vez de 1920px, e talvez ter a opção de redimensionar apenas o lado mais longo da imagem (por exemplo, uma imagem em retrato deve ser redimensionada pela altura em vez da largura).


Versão 2026.5.0-latest ( af1090fa6f )

é uma configuração oculta, então pode ser alterada no console do Rails

mas acho que precisa ser adicionada aqui:

para alterá-la:

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

É necessário reconstruir o aplicativo após fazer essa alteração?

Não, mas você precisa atualizar a página.

Existe alguma maneira de verificar se configurei corretamente? A atualização forçada (Ctrl+F5) não pareceu funcionar, então recriei o aplicativo de qualquer forma, o que também não fez diferença. As imagens ainda estão sendo redimensionadas para 1920px.

/var/www/discourse# rails c
Carregando ambiente de produção (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

Eu geralmente faço um reinício ao alterar uma configuração do site

./launcher restart app

Novamente no console do Rails, qual valor ele retorna ao digitar: SiteSetting.composer_media_optimization_image_resize_dimensions_threshold

Acabei de testar essa alteração específica e ela foi atualizada.

Ele retorna 1440

Esta imagem tem uma resolução original de 3089x2048, e aqui está como ela foi redimensionada após ser carregada agora como teste.

composer_media_optimization_image_resize_dimensions_threshold controla quando ele é acionado.

Se você deseja que a imagem seja redimensionada para 1440, é necessário definir esse valor como composer_media_optimization_image_resize_width_target.

Hmm, não deu certo.

Defini ambos esses valores como 1440 e, para garantir, executei /var/discourse/launcher rebuild app, mas as imagens continuam sendo redimensionadas para 1920.

edit: na verdade, após fazer um rebuild e voltar para o rails, as duas variáveis voltaram a estar indefinidas. Será que algo está sobrescrevendo-as de volta para o padrão?

Na verdade, mesmo após sair do rails e apenas voltar, recebo isso:

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)

Não é assim que se verifica uma configuração. Você precisa adicionar SiteSetting. antes do nome da configuração do site.

Isso resolveu! Só estou totalmente confundindo as proporções de resolução. Na minha cabeça, eu estava pensando em 1440p, que é a altura, não a largura :stuck_out_tongue: Imaginem minha surpresa quando as imagens agora estão saindo ainda menores do que antes.

Temos apenas um controle para a largura, então você provavelmente quis dizer 2560 em vez disso, certo?

Além disso, entendo sua observação sobre a capacidade de trabalhar na outra dimensão. Optar apenas pela largura foi um compromisso quando construí isso inicialmente, pois já existem muitos controles. Nos últimos anos, nossa equipe até mesmo ocultou ainda mais essa configuração, então é complicado pedir mais recursos nesse sentido.

Talvez possamos alterar para que funcione no lado maior, escolhendo dinamicamente entre largura ou altura?