模板换掉之后,真正的问题往往不是页面打不开,而是旧内容在新容器里挤出去、或者某些字段在新模板里根本没有对应位置。判断方法很直接:先确认新模板是否保留旧内容模型,再决定用批量扫描还是逐页比对。若字段结构基本一致,可以靠溢出检测脚本快速筛;若字段被合并或删除,就必须先做内容映射,否则越扫越乱。
这是两种完全不同的处境,处理顺序不能颠倒。
条件一:只换了视觉层,字段和内容模型没动。这时溢出主要来自样式,例如标题变长后撑破卡片、图片比例从 4:3 改成 16:9 后裁掉主体、侧栏宽度收窄导致表格横向滚动。识别动作是给容器加临时描边,把 overflow 设为 visible,逐屏滚动看有没有元素压住相邻区块。结果通常是一份样式修正清单,改完 CSS 就能收尾,不影响内容本身。
条件二:字段被合并、改名或删除。比如旧模板有“副标题”“规格表”“适用场景”三个独立字段,新模板只保留一个富文本正文。此时旧数据仍在数据库里,但前台不再渲染,表现为缺项——页面看着完整,信息却少了。识别动作是把新旧字段列成两列对照表,逐个标记“保留、合并、丢弃”。结果会决定下一步是做数据迁移脚本,还是接受部分信息永久下线。这一步没做完就调样式,等于在错误的地基上刷墙。
人眼翻二三十页还行,上百页一定漏。更可靠的做法是取同一批 URL 在改版前后的渲染结果做差集。假设一个内容站有约 200 个详情页,改版前每页平均输出 12 个可识别文本块,改版后只剩 8 个,差值集中在“参数表”和“相关推荐”两块,那基本可以定位到字段丢失,而不是样式问题。
这里要注意一个反常现象:抓取量或某类文本块数量归零,不能单独证明处理正确。它也可能是渲染方式从服务端输出改成了前端异步加载,抓取工具没等到脚本执行完;也可能是页面被合并成聚合页,单页数量自然下降。要排除这几种解释,至少再做一次带脚本渲染的抓取,或者手动打开两三个样本页核对。只有两种方式结果一致,缺项结论才站得住。
内容溢出不只是视觉上跑出框。更隐蔽的一类是元素被裁掉了,视觉正常,但链接点不到、按钮被遮挡。检测动作可以分两层:
如果两层都通过,说明溢出风险低。如果只有视觉层报警,多半是长文本或超宽图片,属于样式适配;如果交互层也报警,就要回到模板结构,看是不是容器层级被压扁了。
缺项比溢出更难发现,因为页面看起来是完整的。常见成因有三类,处理方式不同:
区分这三类的证据是数据库里的原始值,不是前台显示效果。先查字段有没有值,再判断模板有没有渲染。
如果扫描发现缺项集中在同一类字段,且数量超过页面总数的一半,继续逐页补内容成本过高。这时更合理的动作是回头调整新模板的字段设计,把高频字段加回去,再重新跑一次比对。判断依据是缺项字段的复用率:复用率高说明它是内容骨架的一部分,不该在改版中被砍掉。
反之,如果缺项只出现在少量长尾页面,且这些字段本来就很少用,可以接受用富文本手动补写,不必为它改模板结构。这个取舍没有统一答案,取决于字段在业务里承担的角色,而不是它在旧模板里存在过。
最后一步是把识别结果落成一份可执行的清单:哪些溢出改样式、哪些缺项补数据、哪些字段恢复模板渲染。清单确认后再批量操作,比边改边看更容易发现遗漏。