Resaltado de código falló debido a CDN de bunny.net

Alguien se quejó de que el resaltado de código no funciona en su sitio. He replicado el problema en el mío. El problema parece ser que la política CORS bloquea la CDN:

image

Arreglé el problema agregando js a la configuración “agregar encabezado cors” en la página de cors:

Si está habilitado, bunny.net agregará automáticamente encabezados CORS (Cross-Origin Resource Sharing) a todas las solicitudes de archivos con extensiones de la lista.

Esta publicación es para documentarlo en caso de que alguien más tenga un problema con una CDN de bunny.net y para asegurarme de que lo entiendo.

6 Me gusta

Creo que hay (o solía haber) una configuración en Bunny que añadía js a CORS. Yo (por alguna razón) tengo js añadido a CORS para todos mis recursos de Bunny.net, pero no recuerdo haberlos añadido yo mismo. ¿Es un sitio bastante nuevo?

4 Me gusta

El sitio donde lo notaron por primera vez ha existido durante mucho tiempo (no recuerdo cuándo empezaron a usar bunny).

No estoy seguro si bunny cambió o algo sobre el script incluido lo hizo.

2 Me gusta

El cambio que hizo esto más notable fue muy probablemente DEV: Modernise highlightjs loading (#24197) · discourse/discourse@0878dde · GitHub, que cambió highlightjs para que se cargara a través de import() nativo, lo que requiere encabezados CORS al buscar desde una CDN.

Pero incluso antes de ese cambio, probablemente habrías tenido algunos problemas con cosas como fuentes personalizadas (que también requieren encabezados CORS para solicitudes de origen cruzado).

En teoría, el propio Discourse debería añadir el encabezado CORS a las respuestas de la CDN. Si no lo hace, probablemente significa que tu CDN no está estableciendo el nombre de host de la CDN (es decir, no el nombre de host del foro) en el encabezado Host o en el encabezado X-Forwarded-Host.

Dicho esto, añadir los encabezados a través de la configuración de la CDN probablemente logra lo mismo :ok_hand:

4 Me gusta

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.