换完全站模板后,先不要凭首页观感判断内容是否完好。更可靠的做法是:用同一批“结构标记”分别检查旧模板与线上新模板的渲染结果,把溢出和缺项当成两类独立故障来定位。只有当模板替换前后共用同一套内容字段、且页面由服务端或构建流程输出时,这套方法才成立;如果新模板同时改动了字段映射或内容模型,比对结果会失真,需要先回滚字段层再谈视觉排查。
模板切换后最容易被忽略的是:内容并没有丢,只是被新样式挤出了可视区域,或者被条件渲染跳过。要区分这两者,需要固定一组对照样本。
这一步的动作会直接影响下一步:如果节点存在,排查方向是样式与容器约束;如果节点不存在,排查方向是模板条件、字段映射或数据取值。两者后续要改的文件完全不同,先做这个区分能避免白改样式。
溢出通常表现为文字被容器裁掉、图片撑破栅格、长标题把相邻模块挤到下一行。可核对的证据是:同一字段在旧模板中的容器宽度、行高、最大高度设置,与新模板是否一致。
一个常见误判是把“视觉上变短”直接当成内容丢失。假设某详情页在旧模板中显示完整摘要,新模板只显示前两行。此时若 DOM 中仍保留完整文本,只是被 overflow: hidden 配合固定高度裁掉,那属于溢出而非缺项。反例是:新模板把摘要字段改成了截断函数,输出时就只生成两行文本,DOM 中根本没有完整内容,这时才算缺项。两者在页面上看起来相似,但处理位置一个在样式层,一个在数据输出层。
缺项更隐蔽,因为页面往往仍然“看起来正常”。可核对的证据是:新模板是否对某字段设置了空值判断、是否依赖了旧模板才有的字段别名、是否在循环中改变了取值路径。
例如列表页在旧模板中每条记录都显示作者与更新时间,新模板只显示标题。若模板中仍保留这两个字段的占位,只是数据源未传入,那属于数据映射缺项;若模板已经删除了这两个输出节点,则属于模板设计缺项。前者要改数据层,后者要改模板结构,不能混为一谈。
还要注意一种反常结果:某些页面内容变多,反而说明缺项。比如新模板把多个字段合并输出,导致原本独立的字段被拼接在一起,看似丰富,实则丢失了字段边界,后续推广落地页或结构化数据引用时会出现取值错误。
在全面排查前,先选一个代表性页面做验证。动作是:在本地或预览环境用同一份内容数据分别渲染旧模板与新模板,逐字段比对节点数量与可见性。结果分三种:
这个动作的结果会直接决定后续是批量调整样式,还是回到内容模型层修复。若跳过验证直接全站改 CSS,缺项问题会被掩盖,因为缺失的节点本来就不受样式影响。
如果模板切换的同时还更换了内容字段命名、合并了内容类型,或把服务端渲染改成了客户端异步填充,那么旧模板与新模板的对照就不再是同一份输入。此时节点差异可能来自数据源本身,而不是模板。遇到这种情况,先冻结字段层,恢复一份可对照的数据快照,再重新执行上面的节点比对,否则容易把数据迁移问题误判成模板溢出。