个人网站最容易失败的地方,不是设计不够复杂,而是维护成本太高:想写文章时还要先修环境,想改一句话又担心碰坏线上应用。
这次把目标定得很窄:内容优先、纯静态、自动部署、主站与业务应用完全隔离。
Astro 负责页面,Markdown 负责内容
页面由 Astro 组件组成,文章放在 Content Collections 里,可以直接使用 Markdown 或 MDX。
src/
├── content/blog/ # 文章
├── layouts/ # 页面框架
├── components/ # 可复用组件
└── pages/ # 路由入口
这种结构的优点是路径直观。新增一篇文章,就是新增一个 .md 或 .mdx 文件;新增一个页面,就是新增一个路由文件。
静态站也要把基础做完整
纯静态不等于功能少。这个站同时包含:
- canonical 与 Open Graph 元数据
- JSON-LD 结构化数据
sitemap-index.xml- RSS 订阅
robots.txt- 独立 404 页面
- 响应式导航与移动端布局
这些能力可以由构建过程生成,不需要在服务器上运行额外程序。
部署只保留一条路径
代码推到 GitHub 后,由 ESA Pages 自动执行:
npm run build
构建产物输出到 dist/,随后发布到 CDN。整个流程没有服务器、没有手工上传,也没有“本机可以、线上不行”的环境差异。
网站不是一次性作品。能把发布这一步做得没有心理负担,内容才有可能持续更新。