2 分钟阅读

为什么我把个人网站改成静态优先

从维护成本、首屏体验和内容迁移三个角度,记录一个内容型作品集的技术取舍。

先定义真正的问题

个人网站并不是流量很大的产品。它更常见的使用场景是:招聘者从简历链接点进来,在很短时间内确认真实性,然后继续查看项目或联系你。

这意味着技术选择应该优先满足三件事:

  1. 页面打开足够快。
  2. 内容修改足够简单。
  3. 部署失败时容易回滚。

静态优先减少了什么

Astro 默认输出静态 HTML。首页、项目详情和博客在构建时生成,用户访问时不需要等待服务端查询数据,也不需要为了展示卡片加载大型前端框架。

const projects = (await getCollection('projects'))
  .filter((project) => !project.data.draft)
  .sort((a, b) => a.data.order - b.data.order);

项目筛选仍然需要一点浏览器 JavaScript,但它只负责切换已经渲染好的卡片,不决定内容能否被搜索或访问。

内容应该比样式活得更久

项目详情使用 Markdown frontmatter 保存结构化信息,正文只保留需要补充的叙述。这样页面视觉可以重做,项目信息却不会被困在某个组件里。

先让内容有稳定结构,再让设计围绕结构服务。

目前的边界

静态站点不适合实时协作、私人后台和强交互应用。这些需求出现之前,引入服务端只会增加维护面积。等到确实需要时,再从独立服务接入,而不是让整个作品集变成应用系统。