换模板后不要只看首页。把旧站和新站各抓一份可读的正文清单,按栏目、页面类型、正文块三层对照,才能把溢出和缺项分开。溢出通常表现为同一字段被塞进不同容器后重复渲染,缺项则是某个字段在新模板里根本没有输出位置。两者要分别处理,否则会一边删重复、一边继续丢内容。
模板改变后出现的问题,表面都是“页面不对”,成因却完全不同。渲染溢出是数据还在,只是新模板的容器宽度、字段长度或循环逻辑变了,导致同一段文字出现两次、标题被截断、列表项漏掉最后一条。数据缺项是数据本身没被读取,比如旧模板调用了自定义字段,新模板没有对应输出位置,内容直接消失。
区分方法很直接:打开数据库或后台字段列表,确认该内容是否存在。存在但在页面上重复或截断,属于溢出;不存在或字段值为空,属于缺项。这一步不做,后面所有修改都是猜。
假设一个嘉定本地的企业站,原来用旧模板,栏目页会输出“栏目简介+子栏目列表+最新三条内容”。换成新模板后,栏目简介在页头出现一次、在正文区又出现一次,子栏目列表只剩两条,最新内容区变成空白。此时如果直接删掉重复的简介,正文区会空出来;如果直接补最新内容,重复简介仍然存在。
正确顺序是先查字段:简介字段只有一个值,说明是渲染溢出;子栏目数量在后台是五条,前台只显示两条,说明循环条件或容器高度限制了输出;最新内容区在后台有数据但前台为空,说明新模板没有调用该数据源。三种现象对应三种动作,不能合并处理。
把旧模板和新模板的页面结构各列一份,按以下顺序比对,能较快锁定溢出位置:
如果同一字段在页头和正文各出现一次,先确认模板里是否保留了两处调用。只删前台显示不解决问题,下次换模板还会复现。实际动作是回到模板文件,把重复调用合并为一处,再刷新页面确认正文区是否仍完整。若合并后正文变空,说明该字段原本只服务于页头,正文需要另找数据源。
缺项比溢出更难发现,因为页面看起来“正常”,只是内容少了。排查时按三层走:
假设栏目页的最新内容区为空,后台确实有三条已发布内容。先查模板是否保留该数据源调用;若保留,再查是否加了“仅推荐”条件。把条件去掉后内容出现,说明缺项来自过滤条件而非数据丢失。此时要决定的是保留过滤还是取消过滤,而不是继续补内容。
面对溢出和缺项,常见两种做法:一是先改模板结构,统一字段输出位置;二是先补内容,让页面看起来完整。两者都成立,但条件不同。
先改模板适合字段调用关系已经混乱、多处重复输出的情况。代价是需要重新核对每个页面对应的字段,改动期间页面可能短暂不完整。做完后字段与输出位置一一对应,后续换模板的排查成本会下降。
先补内容适合缺项只出现在个别页面、且模板调用本身正确的情况。代价是如果溢出点没处理,补进去的内容可能再次重复渲染,形成新的对照负担。判断依据是:同一问题是否在多个页面重复出现。重复出现优先改模板,单页出现优先补内容。
无论选哪种,改完后都要回到对照清单复查一次。若溢出点减少但缺项增加,说明改动影响了数据调用,需要回退到字段层重新确认,而不是继续在页面上修补。