先看一个矛盾:把首页、栏目页和详情页都换到同一套新模板后,抽十篇内容逐页看,长度、图片和字段都正常;一旦把全站几百篇内容批量套用,才发现有的段落被截断、有的字段空白、有的列表多出一项。问题通常不在模板本身,而在于样本页恰好覆盖了字段最全、正文最长的那一类内容,规模化后才暴露出边界。
第一种解释是模板对内容长度设了隐含边界。旧模板可能允许正文无限延伸,新模板为了版式统一,给摘要、标题或图片说明设了最大行数或固定高度,超出部分被裁掉。第二种解释是内容结构不齐。新模板要求某些字段必须存在,比如副标题、作者、更新时间或封面图,而旧内容里这些字段有的为空、有的格式不一致,套用后自然出现缺项。
这两种解释指向的动作不同:前者要改模板的溢出处理,后者要补内容或加兜底逻辑。如果只凭肉眼抽查就下结论,很容易把结构缺失误判成模板裁切,改错地方。
要区分是溢出还是缺项,可以按下面的顺序取证,每一步的结果都会决定下一步做什么。
这套取证不依赖具体工具,用浏览器查看源码和逐页对比即可完成。关键是先确认内容是否存在于数据层,再判断是展示层的问题。
假设某站有 200 篇内容,新模板给封面图设了固定宽高比。抽查的 10 篇恰好都有横版封面图,显示正常;批量套用后,20 篇使用竖版图的内容被强制裁切,另有 15 篇没有封面图的文章出现空白占位。这里两个现象的原因不同:裁切属于溢出处理,空白属于缺项兜底。如果只看到空白就统一加默认图,裁切问题仍然存在;如果只调图片比例,空白占位也不会自动消失。
样本页之所以容易通过检查,往往因为它同时满足三个条件:字段齐全、正文长度居中、图片规格统一。规模化后,只要有一个条件被打破,就可能出现例外。因此,抽查时应有意识地选取边界样本,而不是随机抽。至少覆盖正文最短和最长、字段最少、图片规格不同、以及最近更新和很久未更新的内容各若干篇。
另一个边界是模板改动的影响范围。如果只改了详情页模板,栏目页和首页可能不受影响;如果改了全局布局,列表、分页和搜索结果页也要一并检查。判断影响范围时,以模板被哪些页面引用为准,而不是以导航层级为准。
确认问题属于溢出还是缺项后,动作方向不同。溢出问题优先在模板层处理,比如允许换行、调整容器高度或对超长内容做折叠;缺项问题优先在数据层或渲染层处理,比如补全字段、设置默认值或对空值做条件判断。如果两者同时存在,先处理缺项,再处理溢出,因为空字段可能让溢出判断失去参照。
处理完成后,用同一组边界样本重新验证,并记录哪些页面类型仍然例外。这些例外不是失败,而是下一轮要覆盖的范围。只有把例外范围缩小到可解释的程度,才能判断模板改动是否可以继续推广到全站。