【发布时间】:2017-11-28 04:56:12
【问题描述】:
我有一个在 AWS S3 和 CloudFront 上运行的 React 应用程序。当我从给定的 URL 访问应用程序时,它会很好地打开主页。当我使用导航栏上的按钮导航到另一个页面时,它会很好地打开页面。但是,如果我刷新页面,我会收到此错误:
如果我尝试通过特定路径(例如 www.website.com/blog)导航到该页面,我也会遇到同样的错误。
如果我直接从 S3 对象 URL 访问网站,一切正常。页面重新加载,我可以使用直接路径打开页面。这让我相信问题出在 CloudFront 上。但是我不知道从哪里开始调试该问题。
【问题讨论】:
-
我也有同样的问题。你找到解决办法了吗?
-
是的,这个话题...stackoverflow.com/questions/34060394/…
-
我遇到了同样的问题,没有找到 index.html 文件。原因:因为我在s3存储桶的根目录下创建了一个目录,并将索引文件放在这个目录下。我的解决方案是删除附加目录并将索引文件放在根目录下。另一种解决方案是,如果要将自定义目录保留在根对象中,则必须在 Cloud front 下映射 Origin Path。
-
解决方案是转到 Cloud front -> 选择您的云分发详细信息 -> 选择选项卡 General -> 选择编辑 -> 在此表单中将属性 Default Root Object 设置为 index.html
-
根对象表示:当查看器请求指向您的根 URL (example.com) 而不是指向您的特定对象时,您希望 CloudFront 返回的对象(例如 index.html)分发 (example.com/index.html)。
标签: reactjs amazon-web-services amazon-s3 react-router amazon-cloudfront