我试图从我的Amazon S3存储桶中提供字体文件。 font.css文件中引用的字体文件如下:
@font-face {
font-family: 'customFont';
src:url('fonts2/customFont.eot?6akx5h');
src:url('fonts2/customFont.eot?#iefix6akx5h') format('embedded-opentype'),
url('fonts2/customFont.woff?6akx5h') format('woff'),
url('fonts2/customFont.ttf?6akx5h') format('truetype'),
url('fonts2/customFont.svg?6akx5h#customFont') format('svg');
font-weight: normal;
font-style: normal;
}
存储桶CORS配置如下:
<?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>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
字体文件位于我的Amazon S3存储桶中。在将文件上载到S3存储桶后,Access-Control-Allow-Origin响应标头始终存在。然而,大约13或14个小时后,该标题(以及其余的CORS标题)消失,没有任何干预我的结束。这会导致CORS错误出现在包含Chrome,FireFox和IE的许多浏览器中。
我尝试使用以下网址提供字体文件:
http://st.mySiteName.com.s3.amazonaws.com/css/fonts2/customFont.woff?6akx5h
http://st.mySiteName.com/css/fonts2/customFont.woff?6akx5h
http://st.mySiteName.com.s3-website-eu-west-1.amazonaws.com/css/fonts2/customFont.woff?6akx5h
缺少CORS标头的原因是什么?此外,什么可能导致标题在文件上传几个小时后消失?
P.S。如果用afyash一词替换mySiteName,你将可以访问这些文件。