AWS S3部署网站后非首页路由无法刷新问题求助
AWS S3托管单页应用非首页路由刷新失败解决方案
这是单页应用(SPA)部署在S3上的典型问题:前端框架的路由是在浏览器端处理的,S3作为静态文件托管服务,无法识别这些路由规则。当用户刷新非首页路由时,S3会尝试查找对应路径的物理文件,找不到就返回404错误。以下是具体解决步骤:
1. 配置S3静态网站托管的错误文档
- 登录AWS控制台,进入目标存储桶的管理页面
- 切换到「属性」标签,找到「静态网站托管」配置项
- 在「错误文档」输入框中填写你的首页文件名(通常是
index.html) - 保存配置
2. 若使用CloudFront分发,需额外配置自定义错误响应
如果你的网站通过CloudFront加速,还需要调整CloudFront的错误响应规则:
- 进入CloudFront控制台,选择对应的分发
- 切换到「错误页面」标签,点击「创建自定义错误响应」
- 配置参数:
- HTTP错误代码:选择
404 Not Found - 自定义响应页面路径:填写
/index.html - HTTP响应代码:选择
200 OK
- HTTP错误代码:选择
- 保存配置,等待CloudFront分发更新(通常需要数分钟)
3. 验证修复效果
刷新非首页路由,确认页面能正常加载;也可以通过浏览器开发者工具查看网络请求,确认原本的404请求已被替换为返回首页文件,由前端框架接管路由渲染。
内容的提问来源于stack exchange,提问作者Yewin
相关产品推荐
相关产品推荐

