【发布时间】:2022-02-28 22:05:59
【问题描述】:
我在 aws s3 上上传了一个 react 应用,这是我用来部署它的命令
npm i
npm run build
aws s3 sync build s3://bucket/path --acl=public-read --delete
aws cloudfront create-invalidation --distribution-id XXX --paths "/*"
然后我有很多错误,比如
Loading chunk X failed
或
Loading CSS chunk X failed
我以为是部署后的缓存问题,现在打赌我一周没部署,错误率没有降低。
例如,错误是Loading CSS chunk 6 failed. (/static/css/6.32a7316b.chunk.css) 然后当我转到https://my-website.com/static/css/6.32a7316b.chunk.css 时,文件加载没有问题
我阅读了很多帖子但找不到任何解决方案,有些人在谈论 CORS 配置但不应该成为问题,因为文件来自同一个域
可能需要定义一些缓存规则,但我真的不知道是哪一个以及在哪里。
我也在客户端和S3之间使用Cloudflare 不知道有没有影响
【问题讨论】:
-
哪个命令给你错误?您可以在每个命令之后再添加 2-3 行吗?我希望它是
s3 sync命令?你能在s3://bucket/{this-here-please}之后添加相对路径吗? -
您是否在浏览器中收到此消息?如果是这种情况,您可能会收到“过时”的版本,具体取决于您的云端缓存配置。您可以尝试使用自定义参数加载相同的资产,例如
?x=1查看资源是否加载正确? -
你提到了 CloudFlare 和 CloudFront,你都用了吗?
-
我在哨兵中收到消息,是的,Cloudflare 和 CloudFront 都是。我在上次部署和最新上传的文件几周后收到错误,而不是已删除的文件
标签: reactjs amazon-web-services amazon-s3 webpack caching