Le miniature delle chat aggirano s3_cdn_url e usano URL raw del bucket S3

Per i siti con emoji personalizzate aggiunte, ora risulteranno non funzionanti in chat una volta che la correzione è stata incorporata.

A differenza delle immagini standard dei post (che possono essere risolte con rake posts:rebake), le emoji personalizzate della chat vengono trasmesse al frontend in modo dinamico tramite /site.json.

Se il tuo database contiene URL S3 che mancano del protocollo (ad esempio //bucket.endpoint...) o utilizzano un dominio in stile virtual-hosted che non corrisponde perfettamente alle variabili di ambiente di app.yml, il sostituto CDN interno di Discourse fallisce silenziosamente. L’URL grezzo del bucket viene inviato al browser, causando il malfunzionamento delle emoji personalizzate in chat.

Come risolvere:

Per risolvere definitivamente il problema, è necessario mappare forzatamente gli URL grezzi del bucket agli URL del CDN nel database, quindi svuotare la cache del sito in modo che /site.json venga rigenerato.

1. Accedere al container:

Effettua SSH sul tuo server ed entra nel container di Discourse (solitamente app, o web_only se hai una configurazione a due container).

cd /var/discourse
./launcher enter app

2. Rimappare gli URL:

esegui lo strumento integrato di Discourse remap. Dovresti eseguirlo due volte per intercettare sia la variante https:// sia la variante senza schema // che lo script di migrazione a volte lascia in sospeso.

Sostituisci i segnaposto con il tuo effettivo URL grezzo del bucket e il tuo effettivo URL del CDN:

# Correggi gli URL standard https://
discourse remap "https://<your-bucket>.<your-endpoint>.com" "https://cdn.your-domain.com"

# Correggi gli URL senza schema // (questo è quello che di solito rompe le emoji personalizzate)
discourse remap "//<your-bucket>.<your-endpoint>.com" "https://cdn.your-domain.com"

3. Svuotare la cache

Poiché /site.json è fortemente memorizzato nella cache, è necessario svuotare la cache di Rails per forzare il forum a servire i nuovi URL:

Apri la console di Rails:

rails c

Esegui questi comandi:

Rails.cache.clear
Site.clear_cache
exit

4. Aggiornare

Esegui un aggiornamento forzato del browser (e disabilita la soluzione alternativa del componente tema se la stai ancora utilizzando). Le emoji personalizzate in chat dovrebbero ora essere funzionanti e caricarsi correttamente tramite il CDN.

2 Mi Piace