Z-Blog 主题调试:模板白屏、报错行号对不上的排查顺序

· zblog · 阅读 12
摘要

改主题时最怕白屏。没有报错,什么都没有,页面就是一片白。按下面这个顺序查,多数情况十分钟能定位。第一步:看有没有报错先确认调试模式开了。后台设置里把调试打开、错误日志打开。没开的话,PHP 的致命错误不会显示出来,只会在日志里。日志在 zb

改主题时最怕白屏。没有报错,什么都没有,页面就是一片白。

按下面这个顺序查,多数情况十分钟能定位。

第一步:看有没有报错

先确认调试模式开了。后台设置里把调试打开、错误日志打开。

没开的话,PHP 的致命错误不会显示出来,只会在日志里。日志在 zb_users/logs 下面,取最新那个文件。

没日志先看这里,别急着改代码。

第二步:行号和实际对不上

模板报错的行号,指的是编译后的 PHP 文件,不是你写的 .php 模板。

编译后的文件在 zb_users/cache 下,文件名带编译标识。找到对应文件,按报错行号去看,才准。

这一点特别多人卡住,一直在模板里数行,永远数不到。

第三步:清缓存再试

改了模板没重编译,看到的是旧结果。清一次缓存,让它重新编译。

如果清了还是老样子,说明你改的文件根本没被加载。回去看 include 里引的是不是这个路径。

第四步:二分法定位

整页白屏,说明是致命错误,不是逻辑错。

把模板里最近加的那段注释掉,刷新。正常了,问题就在那段。还白,继续往前注释。

别一行一行读。注释比读快。

常见三个原因

拼错的函数名。PHP 8 下未定义函数直接致命。

少了一个花括号或者 endif。

访问了 null 的属性。这条最隐蔽,日志里显示 Trying to get property of non-object。

改完备份

每次改动前留一份备份。文件名带时间戳。

改坏了直接回滚,比在现场修快得多。