Descrizione del problema
Recentemente stavo configurando un nuovo servizio CDN e configurando DISCOURSE_LONG_POLLING_BASE_URL in app.yml, per separare il servizio di long polling dal server originale.
Tuttavia, il message bus continua a effettuare richieste a “/” invece di rispettare l’URL base di long polling configurato.
Passaggi per riprodurre
- Configura
DISCOURSE_LONG_POLLING_BASE_URLinapp.ymlcon un URL CDN personalizzato - Ricostruisci e avvia Discourse
- Verifica che il frontend legga correttamente il valore della variabile d’ambiente
- Osserva le richieste di rete del message bus negli strumenti per sviluppatori del browser
Alcuni screenshot
Il frontend legge correttamente l’impostazione:
Comportamento previsto
Il message bus dovrebbe utilizzare l’impostazione long_polling_base_url configurata per le sue richieste quando l’impostazione è fornita.
Comportamento effettivo
Il message bus continua a effettuare richieste a “/” indipendentemente dalla configurazione di DISCOURSE_LONG_POLLING_BASE_URL.
Causa principale
Il problema si trova in app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.
La logica per impostare messageBus.baseUrl non gestiva correttamente l’impostazione del sito long_polling_base_url, facendola tornare a “/” anche quando era configurato un URL personalizzato.
Correzione
Ho identificato e corretto il problema nell’inizializzatore di istanza del message bus. La correzione garantisce che quando siteSettings.long_polling_base_url è impostato e non è uguale a “/”, configuri correttamente l’URL base del message bus.
Verifica
- Confermata la corretta lettura della variabile d’ambiente da parte del frontend
- Corretta la logica di inizializzazione del message bus per rispettare l’impostazione
- Tutti i controlli di formattazione sono superati
- Il message bus ora utilizza correttamente l’URL base di long polling configurato
Questo bug influisce su qualsiasi installazione di Discourse che utilizza una configurazione CDN personalizzata con long polling, impedendo il corretto utilizzo della CDN per le richieste del message bus.
Grazie a @David_Ghost, visita la nostra discussione qui:
