S3上托管的带有React-Router v3的Create-react-app无法与“以Google身份获取”一起使用

问题描述 投票:0回答:1

我目前有一个使用create-react-app构建的React应用,该应用使用通过CloudFront托管在S3上的react-router v3。 该应用程序是其他位置托管的PHP api的视图。 反应路由器设置为使用browserHistory。

目前,我们正在尝试设置该应用程序,以便它可以被google抓取,并正在使用google网站管理员工具和“以Google身份获取”进行测试。

主页没有问题,但是任何内部页面甚至都无法呈现并返回“未找到”。

尝试直接导航到新选项卡中的路线时,该站点在控制台中仍显示404错误(但会按预期加载页面)。

到目前为止,我已经尝试过:1)在googlebot的入口点导入babel-polyfill。 2)设置CloudFront错误页面以使用200将404响应发送到/index.html 3)将s3的错误页面设置为index.html

根据我的阅读,google不应仅要求爬网该站点就不需要服务器端渲染(SEO对我们而言不是问题),但是我在网上找到的其他解决方案似乎都无法解决该问题。

我是否需要使整个应用程序能够处理SSR,就像这样简单: https : //github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#服务与客户端路由的应用程序 ,还是我可以尝试做其他事情来使页面可爬网而无需在服务器端进行任何设置?

任何帮助或指示进一步资源将不胜感激!

reactjs amazon-s3 react-router amazon-cloudfront google-crawlers
1个回答
2
投票

我发现解决方案非常简单。 在cloudfront发行版中,将自定义错误页面设置为404错误,以http响应200到达目标“ /”。

许多其他人将其发布为目标为“ /index.html”,如果不起作用,请尝试上述操作。

© www.soinside.com 2019 - 2024. All rights reserved.