这种“操作成功、任务未完成”的验收缺口,通常出在发布链路只检查了写入动作,没检查读者侧渲染结果。验收时要把“后台返回成功”和“读者能读到完整正文”当成两个独立事件,分别取证。下面按单篇手工发布和批量导入两种条件展开,并说明哪些例外不能照搬。
单篇手工发布时,你的验收对象是这一篇的最终页面:标题、正文、图片、代码块、目录锚点是否都出现在读者可见的HTML里。此时可以在发布后打开无痕窗口,用页面源代码搜索正文中的一段独特文字,确认它不在模板注释、JSON-LD或隐藏容器里,而是落在正文节点内。
批量导入或迁移时,验收对象不再是单篇页面,而是“样本通过率”和“失败特征是否收敛”。如果只抽查一篇就宣布迁移成功,个别样本成立不能代表规模化成立。此时应把导入结果分成三组:完全可见、部分可见(摘要或截断)、写入成功但页面缺失。每组至少抽三篇,记录它们在源文件和目标页面中的差异位置。
选择依据很简单:当你的发布动作是人工逐篇确认,用第一种;当发布动作是脚本、插件或导入器批量执行,用第二种。两者的验收证据不同,不能互相替代。
无论哪种条件,验收动作都应从读者侧取证开始,而不是先看后台提示。具体可以这样做:
<article>或主要正文容器内,而不是只在<meta>或脚本块里。这个动作的结果会直接影响下一步:如果读者侧通过,说明写入和渲染一致,可以继续下一批;如果读者侧失败而写入侧显示成功,说明问题在渲染、缓存或模板输出环节,下一步应检查页面生成规则,而不是重复发布。
以下例外会让“样本通过”失去代表性,验收时必须单独标记:
遇到这些例外,应把验收范围缩小到“与样本特征不同的那部分内容”,而不是扩大抽查数量。缩小范围能更快定位是模板问题、字符问题还是队列问题。
假设你导入十篇文章,后台全部显示成功。你抽查第一篇,正文完整显示,于是准备宣布完成。此时再抽一篇包含代码块的文章,发现代码块被转义成纯文本,读者看到的是<div>而不是实际结构。这说明第一篇通过只代表纯文本路径通过,不能代表含代码块路径通过。
下一步不是重新导入全部十篇,而是先取含代码块的失败样本,检查导入器是否对<做了额外转义。修正后只重跑含代码块的文章,再按同样方法验收。这个例子的数字仅用于说明比较方法,不代表任何实际项目的通过率。
一份可用的验收记录至少包含:文章标识、发布方式、读者侧URL、正文首尾是否可见、失败特征、以及该失败是否与样本特征不同。这样当规模化后出现例外时,你能判断是发布动作本身失败,还是验收样本选错了。
如果记录里只有“后台成功”和“页面能打开”,就无法区分“正文完整”和“页面只有标题”。验收的终点不是后台返回成功,而是读者侧任务完成:能读到完整正文,并且这个结论在与你内容特征一致的样本上成立。