移动到Cloudfront + SSL后,应用程序中的React路由器链接断开

时间:2019-01-14 23:29:51

标签: reactjs amazon-s3 react-router-v4 amazon-cloudfront

我有一个React应用,使用S3存储桶中托管的react-router,并使用Route53作为DNS提供程序。该应用程序在指向S3存储桶的Route53配置下运行良好。

由于我要使用SSL,所以我创建了一个使用SSL证书指向存储桶的Cloudfront发行版,并将DNS指向了它。从那以后,所有链接都不起作用((example.com有效,而example.com/foo不起作用)。它只是返回一个NoSuchKey错误。我知道这是不正确的,因为密钥肯定在那儿,而且以前也可以使用。

1 个答案:

答案 0 :(得分:1)

问题

  1. 大多数网络服务器一样,如果存储桶中不包含URL指定的对象,则CloudFront / S3将抛出404。
  2. 如果未知对象/未知对象不能公开访问或没有正确的权限,则会自动抛出403

解决方案

当您的Amazon S3或自定义来源将HTTP 4xx或5xx状态代码返回到CloudFront时,您可以让CloudFront将对象返回到查看器(例如,HTML文件)。您还可以指定来自源或自定义错误页面的错误响应在CloudFront边缘缓存中的缓存时间。

更多资源