最近的更新和有效的解决方案解决了 Firefox 无法从域加载字体的长期问题除当前网页外。当通过内容交付网络 (CDN) 提供字体时,通常会出现此问题。
利用 Amazon S3 跨源资源共享 (CORS),可以通过以下方法解决此问题:
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>https://mydomain.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Content-*</AllowedHeader> <AllowedHeader>Host</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>https://*.mydomain.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Content-*</AllowedHeader> <AllowedHeader>Host</AllowedHeader> </CORSRule> </CORSConfiguration>
提供的 S3 CORS 配置允许从指定域请求字体资源,从而授予浏览器加载来自不同来源的字体的权限。它允许方法、标头和响应标头,如下所示:
如果遇到 Cloudfront 缓存,解决方法是利用查询字符串来区分来自不同域的调用:
http://hashhashhash.cloudfront.net/font.woff?https_a.domain.com
此方法可确保 Cloudfront 根据指定的查询字符串提供适当的 Access-Control-Allow-Origin 标头。
以上是如何使用 Amazon S3 CORS 解决 Firefox 跨源字体加载问题?的详细内容。更多信息请关注PHP中文网其他相关文章!