Schwellenwert für Bildgröße in Composer

Fortsetzung der Diskussion aus Clientseitige Bildoptimierung standardmäßig aktiviert:

Ich bin der Administrator einer selbstgehosteten Discourse-Instanz für lokale Fotografen, bei der wir hauptsächlich hochwertige Medien hochladen. Ich möchte die Standardbildbreite für den Composer ändern, auf die Bilder verkleinert werden sollen, finde diese Einstellung aber nirgends.

Der Ask-Bot hat mir geraten, nach composer media optimization image resize dimensions threshold zu suchen, aber ich frage mich, ob diese Einstellung veraltet oder ausgeblendet wurde, da ich nur die Einstellung composer media optimization image enabled finden kann.

Im Grunde möchte ich einfach, dass Bilder, die mit dem Composer hochgeladen werden, auf eine maximale Breite von 1440 px statt 1920 px verkleinert werden, und möglicherweise die Option haben, nur die längere Seite des Bildes zu verkleinern (z. B. sollte ein Hochformatbild in seiner Höhe und nicht in seiner Breite verkleinert werden.)


Version 2026.5.0-latest ( af1090fa6f )

Dies ist eine versteckte Einstellung, die in der Rails-Konsole geändert werden kann.

Ich denke jedoch, dass sie hier hinzugefügt werden muss:

Um sie zu ändern:

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

Muss die App nach dieser Änderung neu erstellt werden?

Nein, aber Sie müssen die Seite neu laden.

Gibt es eine Möglichkeit zu überprüfen, ob ich es richtig konfiguriert habe? Ein harter Neuladen (Strg+F5) hat nicht zu funktionieren geschienen, also habe ich die App trotzdem neu aufgebaut, was aber auch keinen Unterschied gemacht hat. Bilder werden weiterhin auf 1920 px herunter skaliert.

/var/www/discourse# rails c
Lade Produktionsumgebung (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

Ich führe normalerweise einen Neustart durch, wenn ich eine Site-Einstellung ändere.

./launcher restart app

In der Rails-Konsole erneut: Welchen Wert gibt es zurück, wenn Sie eingeben: SiteSetting.composer_media_optimization_image_resize_dimensions_threshold

Ich habe diese spezifische Änderung gerade getestet, und sie wurde aktualisiert.

Es gibt 1440 zurück.

Dieses Bild hat eine ursprüngliche Auflösung von 3089x2048, und so wurde es gerade als Test hochgeladen und skaliert.

composer_media_optimization_image_resize_dimensions_threshold steuert, wann es ausgelöst wird.

Wenn Sie möchten, dass es auf 1440 verkleinert wird, müssen Sie dies als composer_media_optimization_image_resize_width_target festlegen.

Hmm, nichts dergleichen.

Ich habe beide Werte auf 1440 gesetzt und dann zur Sicherheit /var/discourse/launcher rebuild app ausgeführt, aber Bilder werden trotzdem auf 1920 skaliert.

Edit: Tatsächlich sind nach einem Rebuild und dem Zurückkehren in Rails die beiden Variablen wieder als „undefined

So prüft man eine Einstellung nicht. Du musst dem Namen der Site-Einstellung SiteSetting. voranstellen.

Das hat’s gebracht! Ich habe die Auflösungswerte zwar völlig falsch verstanden – im Kopf hatte ich 1440p, was die Höhe und nicht die Breite ist :stuck_out_tongue: Stell dir meine Überraschung vor, als die Bilder jetzt sogar noch kleiner als vorher herauskommen.

Wir haben nur einen Schalter für die Breite, also meinst du wahrscheinlich 2560 statt dessen, oder?

Außerdem verstehe ich deinen Wunsch, auch an der anderen Dimension arbeiten zu können. Die Beschränkung auf die Breite war bei der ersten Umsetzung ein Kompromiss, da es bereits zu viele Schalter gibt. In den letzten Jahren hat unser Team die Einstellung sogar noch weiter versteckt, sodass es schwierig ist, dort nach mehr zu fragen.

Vielleicht ändern wir es so, dass es auf der längsten Seite operiert und dynamisch entweder die Breite oder die Höhe auswählt?