静态发布消除了应用运行时的复杂度,但不会消除生成目录与公共响应之间的边界。发布检查应同时覆盖两边。

一条小的静态发布路径

从干净的制品开始

使用固定生成器构建到干净的目录。记录源码提交、生成器版本、输出文件列表,以及用户会下载的文件的校验和。一次干净的构建能捕获复制式部署可能会意外保留的陈旧文件。

make verify
find public -type f -print | sort

文件列表是证据,不是装饰。如果某条路由消失,diff 应能说明是该来源被移除,还是生成器未能产出它。

演练三类响应

请求一个 HTML 页面、一个静态资源与一个缺失路径。检查状态码、内容类型、缓存策略与安全头:

curl -fsS -D - -o /dev/null https://www.example.test/
curl -fsS -D - -o /dev/null https://www.example.test/downloads/check-http-headers.sh
curl -sS -D - -o /dev/null https://www.example.test/does-not-exist

第三条命令有意不用 -f:404 是预期结果,仍应被捕获。把公共正文与生成的 404.html 比较,并确认状态始终为 404。

让回滚保持简单

在新目录通过检查之前,不要删除上一个目录。回滚应选择一个已知良好目录,而不是在事故中凭记忆重新构造一个。发布检查清单HTTP 响应头检查都刻意做得足够小,能在干净的 shell 里运行。

来源