我正在使用Cloudfront来提供存储在s3中的资产。大多数文件工作正常,但有些文件没有,特别是我的字体。
我完全不知道为什么:
https://xxxxxx.cloudfront.net/assets/application-xxxxxxx.js
返回正常,但
https://xxxxxx.cloudfront.net/assets/fontawesome-webfont.woff?v=3.1.0
返回:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>xxxxxx</RequestId>
<HostId>xxxxxx</HostId>
</Error>
有谁知道这是为什么?我怀疑它与CORS有关,但我使用的是指定的in this answer CORS。并且请求在所有浏览器上都被禁止返回,而不仅仅是firefox。
非常感谢任何帮助。
答案 0 :(得分:0)
修复S3权限后,您需要使CloudFront缓存来自该URL的错误消息无效。
或等24小时。取其。
答案 1 :(得分:0)
当您使缓存无效时,您不能只更新资产。我不得不创建一个全新的云端分发包。
我建议这样做。创建一个新的Cloudfront资产包,将服务器指向该服务器并删除旧服务器。