Description du problème
J’ai récemment configuré un nouveau service CDN et configuré DISCOURSE_LONG_POLLING_BASE_URL dans app.yml, pour séparer le service de long polling du serveur d’origine.
Mais le bus de messages continue de faire des requêtes à “/” au lieu de respecter l’URL de base de long polling configurée.
Étapes pour reproduire
- Configurez
DISCOURSE_LONG_POLLING_BASE_URLdansapp.ymlavec une URL CDN personnalisée. - Reconstruisez et démarrez Discourse.
- Vérifiez que le frontend lit correctement la valeur de la variable d’environnement.
- Observez les requêtes réseau du bus de messages dans les outils de développement du navigateur.
Quelques captures d’écran
Le frontend lit correctement le paramètre :
Comportement attendu
Le bus de messages doit utiliser le paramètre long_polling_base_url configuré pour ses requêtes lorsque le paramètre est fourni.
Comportement actuel
Le bus de messages continue de faire des requêtes à “/” quelle que soit la configuration de DISCOURSE_LONG_POLLING_BASE_URL.
Cause racine
Le problème se situe dans app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.
La logique de définition de messageBus.baseUrl ne gérait pas correctement le paramètre long_polling_base_url du site, ce qui le faisait revenir à “/” même lorsqu’une URL personnalisée était configurée.
Correction
J’ai identifié et corrigé le problème dans l’initialiseur d’instance du bus de messages. La correction garantit que lorsque siteSettings.long_polling_base_url est défini et n’est pas égal à “/”, il configure correctement l’URL de base du bus de messages.
Vérification
- Confirmation que le frontend lit correctement la variable d’environnement.
- Correction de la logique d’initialisation du bus de messages pour respecter le paramètre.
- Toutes les vérifications de formatage sont réussies.
- Le bus de messages utilise désormais correctement l’URL de base de long polling configurée.
Ce bug affecte toute installation Discourse utilisant une configuration CDN personnalisée avec le long polling, empêchant une utilisation correcte du CDN pour les requêtes du bus de messages.
Merci à @David_Ghost, rendez-vous sur notre discussion ici :
