Chat-Vorschaubilder umgehen s3_cdn_url und verwenden direkte S3-Bucket-URLs

Für Foren mit benutzerdefinierten Emojis, die hinzugefügt wurden, sind diese im Chat jetzt defekt, da die Korrektur zusammengeführt wurde.

Im Gegensatz zu Standard-Beitragsbildern (die mit rake posts:rebake repariert werden können), werden benutzerdefinierte Chat-Emojis dynamisch über /site.json an das Frontend übergeben.

Wenn Ihre Datenbank S3-URLs enthält, die das Protokoll fehlen (z. B. //bucket.endpoint...) oder eine virtual-hosted Style-Domain verwenden, die nicht perfekt mit Ihren app.yml-Umgebungsvariablen übereinstimmt, schlägt der interne CDN-Ersetzer von Discourse stillschweigend fehl. Die rohe Bucket-URL wird an den Browser übergeben, wodurch die benutzerdefinierten Emojis im Chat defekt werden.

So beheben Sie das Problem:

Um dies dauerhaft zu beheben, müssen Sie die rohen Bucket-URLs gewaltsam auf Ihre CDN-URL in der Datenbank ummappen und dann den Site-Cache leeren, damit /site.json neu generiert wird.

1. Geben Sie Ihren Container ein:

Melden Sie sich per SSH auf Ihrem Server an und betreten Sie Ihren Discourse-Container (normalerweise app oder web_only, wenn Sie ein Zwei-Container-Setup haben).

cd /var/discourse
./launcher enter app

2. Mappen Sie die URLs um:

Führen Sie das integrierte Discourse-Tool remap aus. Sie sollten es zweimal ausführen, um sowohl die https://-Variante als auch die schemaless //-Variante zu erfassen, die das Migrations-Skript manchmal zurücklässt.

Ersetzen Sie die Platzhalter durch Ihre tatsächliche rohe Bucket-URL und Ihre tatsächliche CDN-URL:

# Reparieren Sie die Standard-https:// URLs
discourse remap "https://<Ihre-Bucket>.<Ihr-Endpoint>.com" "https://cdn.your-domain.com"

# Reparieren Sie die schemaless // URLs (das ist die, die normalerweise die benutzerdefinierten Emojis defekt macht)
discourse remap "//<Ihre-Bucket>.<Ihr-Endpoint>.com" "https://cdn.your-domain.com"

3. Leeren Sie den Cache

Da /site.json stark zwischengespeichert wird, müssen Sie den Rails-Cache leeren, um das Forum dazu zu zwingen, die neuen URLs auszuliefern:

Öffnen Sie die Rails-Konsole:

rails c

Führen Sie diese Befehle aus:

Rails.cache.clear
Site.clear_cache
exit

4. Aktualisieren Sie

Führen Sie einen harten Browser-Refresh durch (und deaktivieren Sie die Theme-Component-Workaround, falls Sie diesen noch verwenden). Die benutzerdefinierten Emojis im Chat sollten jetzt behoben sein und korrekt über das CDN geladen werden.

2 „Gefällt mir“