托管在 S3 上的 React 站点从谷歌页面速度洞察中获得 404 错误

Not*_*ous 0 amazon-s3 amazon-web-services reactjs

我创建了一个带有 react-router 配置的 React 样板,它有 2 个页面(主页和关于)。

我在启用了静态网站托管的 Amazon S3 存储桶中托管了这个简单的应用程序。

我遇到的问题是,诸如 /about 之类的任何 URL 都会返回 404 错误以获取页面速度见解。示例:https : //developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fwww.workzey.com%2Fabout

在我的 S3 存储桶中,我将索引和错误文档都设置为 index.html - 应该如此,以便 react-router 可以做到这一点。

这对我来说是个问题,因为我需要搜索引擎来抓取我的网站。我已经运行了来自其他 react JS 站点的内部 URL 的页面速度洞察,但它们似乎没有得到 404。

这是托管在 S3 上的 React 应用程序的最简单版本,为什么当我在使用 react-router 配置的内部 URL 上运行页面速度洞察时会发生这种情况?非常感谢该决议!

Not*_*ous 5

好的,经过一段时间的尝试,我的问题的答案在这里: S3静态网站托管路由所有路径到Index.html

在 S3 中将错误文档设置为 index.html 是错误的处理方式,因为搜索引擎不会因为 404 响应标头而索引该站点。

避免这种情况的正确方法是在 CloudFront 中设置重定向,将 404 错误发送到 /index.html 并带有 200 响应代码。