静态网站发布很简单,但简单并不免除发布检查的需要。有用的检查足够小,能在每次发布运行,也足够具体,能为真实的理由而失败。

构建干净的制品

使用固定版本的生成器,构建到一次性的输出目录:

hugo version
hugo --gc --minify --destination public

确切命令因项目而异,但关键属性是:输出能从受跟踪的源码复现。不要在构建之后手改生成的 HTML。

检查制品,而不只是源码

检视生成的树,确认期望的入口点存在:

test -s public/index.html
test -s public/404.html
test -s public/robots.txt
test -s public/sitemap.xml
find public -type f -print | sort

然后搜索意外的占位符、本地路径与仅开发用的主机:

rg -n 'localhost|127\.0\.0\.1|TODO|example\.com|/Users/' public --glob '!notes/a-release-checklist-for-a-static-site/**'

文章里有意保留的示例应用围栏明确标注为示例。链接里的主机名或私有路径通常是发布错误。

验证公共路由

在本地提供制品并请求访问者可达的路径:

hugo server --bind 127.0.0.1 --port 1313 --disableFastRender
curl -I http://127.0.0.1:1313/
curl -I http://127.0.0.1:1313/notes/
curl -I http://127.0.0.1:1313/resources/
curl -I http://127.0.0.1:1313/missing-page/

确认 404 路由在生产服务器上返回 404 状态。一个外观精美但状态 200 的错误页,仍然会破坏监控与缓存。

记录结果

在发布记录中保留源码提交、生成器版本与每个可下载资源的校验和。这样无需依赖记忆,就能把线上文件与产生它的源码进行比较。

这份检查清单的可下载版本在资源一节中。

来源