
网站不是一个文件
一次内容更新可能同时生成首页、文章、列表、标签页、专题、站点地图和搜索索引。如果原地逐个覆盖,更新期间就可能出现新首页链接到旧文章、索引已经变化但目标页面尚未生成的情况。每个文件单独正确,整个站点仍可能暂时不一致。
先准备一个完整的新版本
更稳妥的方式,是在独立版本目录里生成所有产物,完成必要校验,再切换公开指针。生成失败时,原有版本继续服务读者。内容修改与主题修改也应固定在同一个构建快照中,避免生成过程中混入后来的编辑。
原子切换不代表不需要检查
完整切换解决的是发布的一致性,而不是所有内容质量问题。错别字、误导标题、错误标签依然需要编辑检查。新版本上线后,也要从真实域名访问页面,确认反向代理、路径和素材表现正常。
回滚也要保持完整
当一个版本不符合预期,切换到已经存在的完整版本,比临时重新生成更容易控制。旧版本所引用的哈希素材也应保留,否则只切换 HTML 可能仍留下破图。
发布机制的价值,在于失败发生时仍保留一个可以阅读的网站,而不是保证永远没有失败。