很多小型知识站并不需要运行时服务。把内容构建成静态文件以后,线上系统只剩下文件服务、TLS 和缓存策略。
复杂度的位置
一个系统并不会因为用了静态文件就没有复杂度。它只是把复杂度从访问路径移动到了构建路径:
- 写作时维护 Markdown。
- 构建时解析内容和生成索引。
- 运行时只提供已经确定的文件。
这对技术知识库很合适,因为读者访问时最重要的是稳定和速度。
什么时候不该静态化
如果内容需要登录权限、个性化展示、实时协作或复杂评论系统,静态方案就会变得别扭。此时应该承认问题已经超出普通博客范围。
一个实用准则
如果一个需求可以通过构建时生成解决,就不要把它留到请求时处理。