GUS / NOTES
2026-09-12 · Web

静态站的构建与缓存取舍

静态站最容易做错的一件事,是把 HTML 也设成长缓存。代价是内容更新后用户看到的还是旧页面,而你没有任何办法让他刷新。

我的做法很朴素:HTML 走 max-age=0, must-revalidate,每次回源验证;带内容哈希的资源走一年 immutable。这样更新的传播是即时的,而重复访问的开销只多一次 304。

构建产物里要注意的是哈希的稳定性。如果每次构建都重新生成文件名(比如带上构建时间),缓存就等于没有。哈希要基于内容,不是基于时间。

还有一点:确保 404 返回的是 404 状态码,不是 200 加一个错误页面。前者让爬虫和监控都能正确判断,后者会让所有死链看起来都是活的。

← 返回列表