Github HTTPS Pages在Microsoft Edge及IE中无法正常工作求助
解决GitHub Pages + Cloudflare下Edge/IE的字体CORS加载问题
我来帮你搞定这个Edge和IE里的字体加载报错问题,结合你给出的配置和错误信息,问题根源主要在Cloudflare的TLS配置以及跨域资源共享(CORS)的响应头设置上,试试下面的分步解决方案:
1. 切换Cloudflare的TLS/SSL模式到「Full (strict)」
Edge和IE对HTTPS链路的一致性要求比Chrome更严格,如果你之前用的是「Flexible」模式,Cloudflare和GitHub Pages之间的连接是HTTP,这会触发浏览器的安全策略,导致CORS错误:
- 登录Cloudflare控制台,进入域名的「SSL/TLS」→「Overview」页面
- 将TLS模式从「Flexible」改为「Full (strict)」—— 因为GitHub Pages本身提供合法的HTTPS证书,这个模式会确保整个请求链路都是HTTPS,完全符合浏览器的安全标准。
2. 给字体资源添加CORS响应头
Edge的内部源ms-appx-web://microsoft.microsoftedge加载字体时被CORS策略阻止,我们需要在Cloudflare里配置响应头允许跨域访问字体:
- 进入Cloudflare的「Rules」→「Transform Rules」→「Response Headers」
- 创建一个新的响应头规则:
- 规则名称:比如
Allow Font Cross-Origin Access - 匹配条件:选择「URI Path」,匹配所有字体文件后缀(比如
*.ttf、*.woff、*.woff2,根据你实际使用的字体格式调整) - 响应头设置:添加
Access-Control-Allow-Origin,值设为*(如果要更严格,也可以指定你的域名,不过*对于字体资源来说通常是安全的)
- 规则名称:比如
- 保存并部署这个规则
3. 清除Cloudflare的缓存
Cloudflare可能缓存了旧的响应头和资源,导致新配置无法立即生效:
- 进入Cloudflare的「Caching」→「Configuration」页面
- 点击「Purge Everything」,清除所有缓存内容,确保浏览器能获取到最新配置后的资源
4. 确认GitHub Pages的HTTPS设置
从你的截图看已经开启了「Enforce HTTPS」,这步主要是确认该设置处于启用状态,确保GitHub那边的HTTPS证书是有效的,没有配置异常。
额外排查:检查CSS中的@font-face规则
确保你CSS里的字体引用是正确的绝对HTTPS路径,比如https://your-domain.com/assets/fonts/your-font.ttf,避免使用相对路径或者错误的内部路径(虽然报错里的路径看起来是Edge自身的,但确认自己的字体引用没问题能排除其他潜在问题)
这些步骤应该能解决Edge和IE里的字体CORS错误,让你的页面在所有浏览器里正常加载。
内容的提问来源于stack exchange,提问作者Harsh Gupta




