Descripción del problema
Recientemente estaba configurando un nuevo servicio CDN y configurando DISCOURSE_LONG_POLLING_BASE_URL en app.yml, para separar el servicio de sondeo largo del servidor original.
Pero el bus de mensajes continúa realizando solicitudes a “/” en lugar de respetar la URL base de sondeo largo configurada.
Pasos para reproducir
- Configure
DISCOURSE_LONG_POLLING_BASE_URLenapp.ymlcon una URL CDN personalizada. - Reconstruya e inicie Discourse.
- Verifique que el frontend lea correctamente el valor de la variable de entorno.
- Observe las solicitudes de red del bus de mensajes en las herramientas de desarrollador del navegador.
Algunas capturas de pantalla
El frontend lee correctamente la configuración:
Comportamiento esperado
El bus de mensajes debería usar la configuración long_polling_base_url configurada para sus solicitudes cuando se proporciona la configuración.
Comportamiento real
El bus de mensajes continúa realizando solicitudes a “/” independientemente de la configuración de DISCOURSE_LONG_POLLING_BASE_URL.
Causa raíz
El problema está en app/assets/javascripts/discourse/app/instance-initializers/message-bus.js.
La lógica para establecer messageBus.baseUrl no manejaba correctamente la configuración del sitio long_polling_base_url, lo que provocaba que se estableciera por defecto en “/” incluso cuando se configuraba una URL personalizada.
Solución
He identificado y solucionado el problema en el inicializador de instancias del bus de mensajes. La solución garantiza que cuando siteSettings.long_polling_base_url esté configurado y no sea igual a “/”, configure correctamente la URL base del bus de mensajes.
Verificación
- Se confirmó que el frontend lee correctamente la variable de entorno.
- Se corrigió la lógica de inicialización del bus de mensajes para respetar la configuración.
- Todas las verificaciones de formato pasan.
- El bus de mensajes ahora utiliza correctamente la URL base de sondeo largo configurada.
Este error afecta a cualquier instalación de Discourse que utilice una configuración CDN personalizada con sondeo largo, lo que impide la utilización adecuada de la CDN para las solicitudes del bus de mensajes.
Gracias a @David_Ghost, diríjase a nuestra discusión aquí:
