部署你的 Gatsby 应用
Gatsby has been a static-site generator from the start, and gatsby build has written to the same public folder for years. Nothing unusual here — build it, deploy it.
- 01
Build the site
Run "gatsby build" (or "npm run build", which calls the same thing). Gatsby pre-renders every page and writes optimized static output to "public".
- 02
Skip develop mode
"gatsby develop" starts a live-reloading dev server on its own port — it's not what produces deployable output. You want "build", not "develop".
- 03
部署它
在项目根目录运行 "npx harvis deploy public"。首次部署无需配置、无需登录——你会立即拿到一个可访问 URL,以及一个私密认领链接,方便你随时把网站关联到一个免费账号。
一条命令部署 Gatsby
构建你的项目,然后把输出文件夹交给 harvis。首次部署无需账号——你会拿到一个可访问链接,以及一个用于以后管理网站的私密认领链接。
gatsby build npx harvis deploy public
更喜欢拖拽文件而不是用终端?构建项目后,把输出文件夹拖到这里即可用同样的方式发布。
Gatsby 部署常见问题
My Gatsby site pulls data from a CMS. Does that still work after deploying?
Yes, as long as the data fetching happens at build time through Gatsby's GraphQL data layer, which is the normal Gatsby pattern. The page is already fully rendered with that data baked in by the time gatsby build finishes — nothing needs to run at request time.
Do Gatsby's dynamic routes and client-only paths work?
Pages generated via createPages at build time work fine — they're plain files in public. Client-only routes (Reach Router matchPath) render in the browser after the shell loads, and harvis's fallback to your entrypoint HTML handles the direct-visit case.
把 Gatsby 应用部署到 harvis 真的免费吗?
是的,无需信用卡。免费额度为每个网站 500 个文件、50 MB,对于一个静态 Gatsby 构建产物来说绰绰有余。已发布的网站不会过期——会一直在线,直到你删除它们。
已部署的 Gatsby 网站可以使用我自己的域名吗?
每个网站都会获得一个免费的 harvis.dev 地址,认领之后你可以在仪表盘中选择自己的子域名——比如 my-app.harvis.dev,而不是一个随机地址。把你已经拥有的域名(比如 mystore.com)指向该网站,目前还不支持。
这和把 Gatsby 部署到 Vercel 或 Netlify 有什么不同?
Vercel 和 Netlify 的核心是连接一个 Git 仓库,在他们的服务器上运行构建,并通过一个仪表盘进行配置。harvis 跳过了这一切:你在本地(或自己的 CI 中)构建,对输出文件夹运行一条命令,就能拿到一个链接——无需项目搭建,直到你想保留这个网站才需要账号。
要部署别的东西?
各处的方法都一样——先构建,然后用 npx harvis deploy 部署输出。