Проблема с относительным путем вызывает ошибку CORS на сайтах Discourse

Используете ли вы CDN на одном из этих сайтов? Я заметил, что подсветка кода перестала работать на моём сайте, и, думаю, это связано с этим:

В моём случае мой CDN не возвращает заголовок Access-Control-Allow-Origin для файла highlightjs. Я вижу, что CDN Meta включает этот заголовок, поэтому интересно, в чём разница.

$ curl --silent -I https://d3bpeqsaub0i6y.cloudfront.net/highlight-js/meta.discourse.org/9797975efac87d28baa695ae13ca72ccaf5120f5.js | grep -i access-control
access-control-allow-origin: *
access-control-allow-methods: GET, HEAD, OPTIONS

Однако эти заголовки не отправляются исходным сервером:

$ curl --silent -I https://meta.discourse.org/highlight-js/meta.discourse.org/9797975efac87d28baa695ae13ca72ccaf5120f5.js | grep -i access-control
<no output>

Насколько я могу судить, Discourse должен добавлять заголовки access-control к файлам highlightjs:

Однако эти заголовки применяются только если запрос является «запросом к CDN»:

Это работает только если Discourse настроен с отдельным именем хоста для «запросов к CDN».

1 лайк