S3+Route53托管静态网站遇404(NoSuchKey)错误求助
解决S3静态网站404 NoSuchKey(index.html不存在)问题
核心问题:你把
npm run build生成的整个build文件夹上传到了S3桶,导致网站的index.html实际在build/index.html路径下,但S3静态网站托管默认在桶的根目录查找索引文档,所以找不到根目录的index.html,触发404错误。最直接的解决办法:
- 别直接传
build文件夹,进到本地build文件夹里面,把里面的所有文件、子文件夹(比如index.html、static目录这些)全选,上传到S3桶的根目录。 - 用AWS CLI的话更省事,执行这条命令就能同步
build里的内容到桶根:aws s3 sync ./build/ s3://你的桶名称/ - 传完去S3桶的「对象」标签里确认下,根目录下得直接有
index.html,不能藏在build文件夹里。
- 别直接传
额外要检查的点:
- 确认S3静态网站托管的「索引文档」是
index.html(默认就是这个,一般不用改)。 - 如果Route53配了别名记录,要确保别名指向的是S3静态网站托管的endpoint,不是桶的REST API域名(俩域名格式不一样,别选错)。
- 确认S3静态网站托管的「索引文档」是
内容的提问来源于stack exchange,提问作者simey
相关产品推荐
相关产品推荐

