195*_*436 4 amazon-s3 amazon-web-services amazon-cloudfront amazon-route53 reactjs
我已将我的React应用程序部署到s3. 我正在使用 Cloudfront 来使用证书并s3 bucket通过HTTPS. 在努力设置完所有内容后,我设法设置了所有内容,现在运行良好。
现在我更新了我的项目,创建了一个新版本bundle.js,上传到s3.
我现在的问题是mydomain.com指向 V1bundle.js
所以我试图挖掘更多,这是我发现的:
mydomain.com 指向 V1xxxxx.cloudfront.net 指向 V1mydomain.com.s3-website-eu-west-1.amazonaws.com 指向 V2所以我的猜测是出于某种原因,cloudfront指向 V1,但为什么呢?那里有一些缓存吗?
这是配置,以防万一:
Route53 Type A 指着 xxxxxx.cloudfront.netcloudfront 域是 xxxxxx.cloudfront.netcloudfront CNAMES是mydomain.com和www.mydomain.comcloudfront origin domain name and path 是 mydomain.com.s3-website-eu-west-1.amazonaws.coms3 bucket 是 mydomain.comPS:只是为了仔细检查问题不仅来自bundle.js,我从存储桶中删除了背景图像,但不知何故,访问时仍然找到并使用它mydomain.com(因此显示V1)
正如@Joe Clay 所证实的那样,Cloudfront正在缓存所有内容。
要使用 强制清除缓存AWS console(我在一些文档中发现可以使用他们的 来完成API),以下是我遵循的步骤:
AWS consoleCloudfront并查看您的发行版的详细信息invalidations选项卡,然后单击Create invalidation*并保存mydomain.com(可能需要清理浏览器缓存)希望这个答案可以帮助任何陷入同样问题的人!
我知道这是个老问题。但我找到了一种使用部署脚本自动化此过程的方法。这是我的 package.json 文件中的一个条目
"deploy": "npm run build && aws s3 sync --delete build/ s3://bucket-name && npm run invalidateCache",
"invalidateCache": "aws cloudfront create-invalidation --distribution-id E23232323 --paths '/*'",
Run Code Online (Sandbox Code Playgroud)
之后你所要做的就是跑npm run deploy。
命令解释。
/*它是为了清除所有路径的缓存。

希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
1724 次 |
| 最近记录: |