Amazon S3 CORS 和 Firefox 跨域字体加载
背景
Firefox 历史上有从不同于当前网页的来源加载字体时遇到困难,特别是当字体存储在CDN。尽管已经提出了各种解决方案,但 Amazon S3 跨源资源共享 (CORS) 的引入提出了是否可以使用 CORS 解决此问题的问题。
CORS 配置
下面提供了已成功实施来解决此问题的 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>
的意义此配置中的AllowedMethod (GET) 和AllowedHeader (Content-*) 设置至关重要。
查询字符串解决方法
在某些情况下,开发人员可能会遇到以下问题: Cloudfront 缓存 Access-Control-Allow-Origin 标头。为了解决这个问题,AWS 工作人员建议使用查询字符串来区分来自不同域的请求。
通过为每个域使用唯一的查询字符串,例如“?https_a.domain.com”和“?http_b. domain.com”,Cloudfront 将返回不同的 Access-Control-Allow-Origin 值,允许跨域加载字体。
以上是Amazon S3 CORS 能否解决 Firefox 的跨域字体加载问题?的详细内容。更多信息请关注PHP中文网其他相关文章!