And*_*sen 6 seo amazon-s3 amazon-cloudfront react-router
我在单页Web应用程序中使用React和React Router.由于我正在进行客户端渲染,因此我想用CDN提供所有静态文件(HTML,CSS,JS).我使用Amazon S3托管文件,使用Amazon CloudFront作为CDN.
当用户请求/css/styles.css时,该文件存在,因此S3为其提供服务.当用户请求/ foo/bar时,这是一个动态URL,因此S3添加了一个hashbang:/#!/ foo/bar.这将服务于index.html.在我的客户端,我删除了hashbang,所以我的网址很漂亮.
这一切都适用于100%的用户.
问题
问题是Google不会抓取我的网站.原因如下:
为什么要删除hashbang?我的应用程序适用于100%的用户,所以为什么我需要以这种方式重新设计它才能让Google正确抓取它?这是2016年,只需遵循hashbang ......
</咆哮>
难道我做错了什么?当它无法识别路径时,是否有更好的方法让S3服务于index.html?
设置节点服务器来处理这些路径并不是正确的解决方案,因为这会破坏拥有CDN的整个目的.
在这篇帖子中,反应路由器的最大贡献者迈克尔·杰克逊说:"谢天谢地,hashbang不再广泛使用." 你怎么改变我的设置不使用hashbang?
我知道这已经有几个月了,但是对于遇到相同问题的任何人,您可以简单地将“index.html”指定为 S3 中的错误文档。错误文档属性可以在存储桶属性 => 静态网站托管 => 启用网站托管下找到。
请记住,采用这种方法意味着您将负责处理您自己的应用程序中的 404 等 Http 错误以及其他 http 错误。
归档时间: |
|
查看次数: |
2313 次 |
最近记录: |