bunny.net CDN 导致代码高亮失败

有人抱怨他们的网站代码高亮显示不工作。我已经在我的网站上复现了这个问题。问题似乎是 CDN 被 CORS 策略阻止了:

image

我通过在 CORS 页面的“添加 CORS 标头”设置中添加 js 来解决了这个问题:

如果启用,bunny.net 将自动为具有列表中扩展名的文件的所有请求添加 CORS 标头(跨域资源共享)。

此帖子是为了记录下来,以防其他人遇到 bunny.net CDN 的问题,并确保我理解这一点。

6 个赞

我相信 Bunny 中有一个(或曾经有一个)设置可以为 CORS 添加 JS?我(出于某种原因)为我所有的 bunny.net 资源都添加了 JS 到 CORS,但我自己不记得添加过。这是一个相当新的网站吗?

4 个赞

他们首次注意到该网站的地方已经存在了很长时间(不记得他们何时开始使用 bunny)。
我不确定是 bunny 变了还是包含的脚本有什么变化。

2 个赞

最有可能导致此问题的原因是 DEV: Modernise highlightjs loading (#24197) · discourse/discourse@0878dde · GitHub 这一更改,它将 highlightjs 改为通过本地 import() 加载,这在从 CDN 获取时需要 CORS 标头。

但即使在此更改之前,您也可能在自定义字体等方面遇到一些问题(这也需要 CORS 标头来进行跨域请求)。

理论上,Discourse 本身应该将 CORS 标头添加到 CDN 响应中。如果它没有这样做,那可能意味着您的 CDN 没有在 Host 标头或 X-Forwarded-Host 标头中设置 CDN 主机名(即非论坛主机名)。

话虽如此,通过 CDN 配置添加标头很可能也能达到同样的效果 :ok_hand:

4 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。