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.