把 Astro 博客部署到 Vercel

从本地仓库到线上域名的完整流程,以及几个容易踩的坑。

静态站部署到 Vercel 几乎是零配置的,但有几个地方容易卡住,记一下。

前置检查

推代码之前,先在本地确认能构建成功:

npm install
npm run build

dist/ 目录生成出来且没有报错,说明项目本身没问题。构建失败的话,Vercel 上只会看到一片红,排查起来更麻烦。

接入流程

  1. 把代码推到 GitHub / GitLab
  2. 打开 vercel.com,用同一个 Git 账号登录
  3. Import Project,选中仓库
  4. 框架预设会自动识别成 Astro,构建命令 npm run build、输出目录 dist 都是自动填好的
  5. 点 Deploy,等一两分钟

之后每次 push 都会自动触发部署。开 PR 会生成一个独立的预览地址,合并进 main 才上生产。

必须改的一处配置

astro.config.mjs 里的 site 字段:

export default defineConfig({
  site: 'https://your-domain.com',
});

它决定了 RSS 和 sitemap 里生成的绝对链接。忘记改的话,订阅源里的链接会指向错误地址。

关于国内访问

*.vercel.app 这个域名在国内直连经常不通。正式用的话:

  • 绑一个自己的域名(Vercel 后台加一条 DNS 记录即可,SSL 自动签发)
  • 面向国内用户的站点,建议改用 Cloudflare Pages 或 GitHub Pages

免费额度

Hobby 套餐给 100GB 流量 / 月、1M 边缘请求,个人博客完全够。但它的条款禁止商用,接了广告或者挂了公司业务就得升 Pro。

另外记得在后台 Spend Management 里设一个消费上限,防止哪天流量异常账单失控。