在AWS上更新静态站点的对象,而不是在浏览器中看到结果

时间:2015-03-20 08:14:34

标签: amazon-web-services deployment amazon-s3 web-deployment

我在使用AWS S3和AWS Cloud前端服务部署静态网站时遇到两个问题。发生的第一个问题是,当我查找http://.point.plumbing时,我没有看到我对index.html页面所做的更改。但是,如果我访问我的存储桶并访问对象:index.html 并单击链接,您将看到所需的更改生效https://s3-us-west-2.amazonaws.com/point.plumbing/index.html

我遇到的第二个问题是我似乎收到此错误Failed to load resource: the server responded with a status of 403 (Forbidden) http://www.point.plumbing/fontkit/avenir_55_oblique-webfont.woff2错误告诉我服务器 cant 加载我想要的一些字体{{ 3}}

在服务页面上,如果您点击图标,您会看到我没有加载字体avenirmedium, sans-serif

我花了很多时间来解决这些问题,而我最接近解决方案就是使用此链接。 http://.point.plumbing

我之所以遇到错误并且没有看到http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ReplacingObjectsSameName.html上的所需更改,是因为我的对象缓存未刷新24小时?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

首先,我注意到你说你的端点是https://s3-us-west-2.amazonaws.com/point.plumbing。检查控制台,您的Web端点实际上是point.plumbing.s3-website-us-west-2.amazonaws.com(我假设point.plumbing是有效的顶级域名。)

如果我理解正确,您说当您通过CloudFront查看HTML时,您没有看到HTML的更改。这是因为CloudFront会缓存您的文件 - by default for 24 hours。要查看更新,您需要通过对象元数据中的HTTP标头指定更短的TTL,或向Invalidate the objects发出API命令。这需要10到15分钟才能传播,并且会在每月前1000个物品之后开始花钱。

关于字体,我不确定,但听起来可能是权限问题。确保该对象具有public-read的权限或对存储桶设置公共get-object权限。