我使用S3 CORS
来提供字体。如果S3
使用域名来提供字体,则它在 中有效Firefox
,但CloudFront
使用 时则无效。适用于Google Chrome
。
我的CORS
配置S3
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://*.example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>30000</MaxAgeSeconds>
<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://*.example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>30000</MaxAgeSeconds>
<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
</CORSRule>
</CORSConfiguration>
答案1
为了使它正常工作,我必须设置 CORS 配置以包含 CloudFront 分发域。
我还必须更改 CloudFront 分发行为中的设置,以允许转发查询字符串。我不记得在哪里看到过这样的要求。
然后我使导致问题的字体无效。
然后我们就可以出发了!
希望有帮助
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>https://*.domain.com</AllowedOrigin>
<AllowedOrigin>http://*.domain.com</AllowedOrigin>
<AllowedOrigin>http://d2e7ljkkwgm4dt.cloudfront.net</AllowedOrigin>
<AllowedOrigin>http://dpibywtcfxy6z.cloudfront.net</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
</CORSRule>
</CORSConfiguration>