换模板后页面看起来没报错,不等于内容完整。识别溢出与缺项的关键,是把“导航、正文、链接、资源”四类元素分别对照旧模板和数据库中的原始内容,而不是只看新页面是否打开正常。下面从一种常见矛盾现象切入,给出两个解释和可区分的证据。
全站换模板后,首页和栏目页都能正常访问,但细看会发现:有的段落被截断,有的链接指向空地址,有的图片位置留白。这并不一定是新模板写错了,更常见的原因是旧模板的输出逻辑与新模板的容器结构不一致。
例如旧模板把正文放在一个固定宽度的 <div> 中,新模板改成弹性布局,长表格或长英文单词就可能撑破容器;旧模板直接输出完整字段,新模板只调用摘要字段,缺项就出现了。此时页面本身没有报错,问题藏在结构和字段调用里。
解释一:内容已经不在数据库或源文件中。换模板时如果同时清理了旧字段、旧附件或旧分类,缺项就是真实丢失。
解释二:内容还在,只是新模板没有调用或没有足够空间显示。溢出和缺项往往同时出现,正是因为同一段内容在一个位置被压缩,在另一个位置被完全省略。
这两种解释的处理动作完全不同:前者需要恢复数据,后者只需要调整模板输出逻辑。如果混在一起修,很容易把还能用的内容误删。
要判断属于哪一种,可以先用 HTML 链接代码做一次最小对照。具体动作是:从旧页面复制一段包含链接的正文,粘贴到新模板的同一位置,观察链接是否仍然可点、文本是否完整显示。结果会直接影响下一步。
这个对照不需要改动全站,只在一个页面、一个区块上做。它的价值在于把“内容丢失”和“渲染缺项”分开,避免一上来就批量回滚。
溢出通常表现为横向滚动条、文字压住边栏、图片超出卡片边界。可以临时给正文容器加一个可见边框,例如在模板中给对应 <div> 加上 outline: 1px solid red;,刷新页面后观察哪些元素越过了边框。
如果只有长表格或长链接越界,说明是内容宽度问题,可以给表格加横向滚动容器,或给长链接加自动换行。如果整块正文都越界,说明新模板的栅格宽度小于旧模板,需要调整列宽或内边距。这个动作的结果会告诉你:是逐条修内容,还是统一改容器。
缺项比溢出更难发现,因为空白区域不一定显眼。可以按栏目列出旧模板中存在的元素:标题、正文、作者、日期、附件、相关链接。然后在新模板同一位置逐项核对。
如果某一项在旧模板有、新模板没有,但数据库里仍能查到,就属于渲染缺项;如果数据库里也查不到,才属于内容丢失。这个区分决定了你是改模板还是恢复备份。
假设某栏目旧模板显示“正文 + 附件下载”,新模板只显示正文。核对后发现附件字段仍在数据库中,只是新模板没有输出。此时正确动作是先在模板中补上附件输出位置,而不是去恢复整个数据库。补上后如果附件链接可点,说明缺项解决;如果链接地址为空,再检查附件字段的调用名是否改变。这个顺序能避免把“没显示”误判成“已丢失”。
反过来,如果核对后发现附件字段在数据库中也不存在,那就不是模板问题,需要从备份或旧系统中找回。此时继续改模板不会让附件出现。
完成一轮对照后,你会得到三类结果:内容在且能显示、内容在但没显示、内容不在。第一类不需要处理;第二类改模板输出或容器;第三类才需要恢复数据。把这三类分开记录,再决定是全站统一调整,还是只修个别栏目。这样换模板后的溢出与缺项就不会互相掩盖,也不会因为一个空白区域就回滚整个站点。