Amazon S3 + Cloudfront React应用程序可以正常运行,但出现404错误

时间:2020-06-19 09:58:17

标签: reactjs amazon-s3 amazon-cloudfront

我有一个部署到Amazon S3并由Cloudfront分发的react应用程序,它现在可以按预期的方式完全正常工作。 但是,当我打开浏览器控制台时,它显示404错误。

例如,假设我的网站地址为https://shinhong.com

  • 在地址栏中输入https://shinhong.com,然后按Enter:工作没有错误
  • 现在单击网站上的某些链接,然后导航至https://shinhong.com/path/to/something正常运行
  • 现在刷新当前页面(https://shinhong.com/path/to/something):工作,但显示404错误,例如 GET https://shinhong.com/path/to/something 404 (Not Found)
  • 或在地址栏中输入https://shinhong.com/path/to/something,然后按Enter: Works,但显示与上述相同的错误

错误为404的网络请求具有以下响应标头:

x-amz-cf-pop: ICN51-C1
x-amz-error-code: NoSuchKey
x-amz-error-detail-key: admin/logs
x-amz-error-message: The specified key does not exist.
x-cache: Error from cloudfront

但有回应:

<!doctype html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8"/>
        <link rel="shortcut icon" href="/favicon.ico"/>
        <meta name="viewport" content="width=device-width,initial-scale=1"/>
        <meta name="theme-color" content="#2c7be5"/>
        <link rel="manifest" href="/manifest.json"/>
...

是普通的public/index.html文件。

我检查了此链接CloudFront + S3 Website: "The specified key does not exist" when an implicit index document should be displayed,但没有运气。

此外,当我通过Cloudfront域https://dq9*****u4da.cloudfront.net或S3存储桶域mys3bucket.s3-website.ap-northeast-2.amazonaws.com访问时,一切都相同。我的开发服务器btw中没有错误。

您能为这个奇怪的问题提出任何可能的原因吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

我具有相同的配置:Amazon S3 + Cloudfront React应用 我想我在Cloudfront中解决了

我将HTTP Responde Code从400更改为200

enter image description here

现在,如果我去https://example.com/signup,我将没有400了