You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法找到HTML页面,Gatsby使用及S3静态站点上传问题咨询

解决Gatsby静态站部署到S3的文件上传问题

兄弟,我来帮你理清这个问题:

为什么直接打开public/index.html会显示黑页?

这是正常现象,不用紧张。Gatsby构建后的静态资源默认使用根相对路径(比如/static/js/main.[hash].js),当你用本地文件协议(file://)打开index.html时,浏览器会从本地文件系统的根目录去查找这些资源,而不是从public文件夹内部读取,导致所有依赖的JS、CSS、图片都加载失败,页面自然就成黑的了。部署到服务器(比如S3)后,这个问题就会消失。

部署到S3需要上传哪些文件?

你需要把整个public文件夹里的所有内容(包括里面的所有文件和子文件夹,比如static/、index.html、404.html、各个路由对应的HTML文件等)全部上传到S3的静态网站存储桶中。绝对不能只传单个index.html,因为页面运行依赖的所有静态资源都在public的子目录里。

补充S3部署的关键配置

上传文件后,记得在S3存储桶的配置里完成这几步:

  • 开启静态网站托管功能,将index.html设置为默认索引文档
  • 将404.html设置为错误文档——因为Gatsby采用客户端路由,当用户直接访问子路径(比如your-domain.com/about)时,S3会先尝试查找对应文件,找不到就返回404,这时候需要让S3返回404.html,由Gatsby的路由系统处理并展示正确页面
  • 确保所有上传的文件权限设置为公开可读,否则用户访问时会遇到权限错误

内容的提问来源于stack exchange,提问作者elfranco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:26:12