买了域名之后花了一个下午把博客搭好,记录一下过程。
选型
最终选了 Astro 做静态生成、GitHub 托管代码、Vercel 部署、阿里云管理域名解析。Hugo 和 Hexo 也都不错,选 Astro 主要是 Node.js 环境现成,不需要额外装东西。
项目初始化
核心文件没几个:
src/
├── content.config.ts # 内容集合配置
├── content/blog/ # Markdown 文章放这里
├── layouts/Base.astro # 全局布局
└── pages/
├── index.astro # 首页文章列表
├── about.astro # 关于页
└── blog/[...slug].astro # 文章详情页
再加上 package.json、astro.config.mjs 和一份全局 CSS,骨架就齐了。
踩坑记录
Astro v6 Content API 变更
最新版 Astro 的内容集合 API 有较大改动:
src/content/config.ts移动到src/content.config.ts- 集合定义必须指定
loader: glob({ pattern, base }) entry.render()被移除,改用render(entry)函数entry.slug不再自动生成,改用entry.id
错误提示还算清楚,跟着改就能过。
GitHub 推送
国内直连 GitHub 经常超时,需要走代理:
git config --global http.proxy <代理地址>
git config --global https.proxy <代理地址>
推送完记得把不需要的本地目录(.astro、.vercel)写进 .gitignore。
Vercel 仓库权限
Vercel 导入 GitHub 仓库时可能提示 “Missing Git repository”。去 GitHub 的 Settings → Applications → Vercel → Configure,手动勾选仓库即可。不想折腾也可以直接用 npx vercel CLI 部署,命令行走一遍就能上线。
域名 DNS 配置
Vercel Domains 页面会告诉你需要配什么记录。在阿里云 DNS 控制台按它给的提示添加 A 记录(根域名)和 CNAME 记录(www 子域名)就行。注意以 Vercel 页面显示的实际值为准,因为服务商的 IP 可能会变。
日常写文章
在 src/content/blog/ 下新建 .md 文件:
---
title: "标题"
date: 2026-05-10
---
正文...
然后 git push 到 GitHub,Vercel 自动构建上线。整个过程不需要碰服务器。
本地预览用 npm run dev,浏览器打开 localhost:4321。
费用
目前零成本:Astro 开源、GitHub 免费、Vercel 免费额度个人博客完全够用、.xyz 域名首年也就几块钱。