为什么打开网站是空白的呢:看状态码和下载段先分三种白屏
全白,可状态码是 200
客户说页面打开一片空白,我一开始以为站点挂了,结果一测,状态码 200,当场卡住。
200 却白屏,说明请求成功,问题在返回的内容或者后面的执行,方向完全变了。
三种白屏,先分开
分开了,才谈得上对症,也才不会把前端问题当成服务器问题。
请求没成功:连状态码都没有,属于解析、连接或握手的问题,这一类最好认。
成功但内容空:返回了 200,正文几乎没有字节,像是空模板或者被兜住的错误。
内容有但页空白:HTML 回来了,脚本报错,渲染没跑起来,这一类最难凭肉眼判断。
结果里看什么
先看能一眼看出来的字段,别一上来就翻代码。
先看状态码:没有状态码,先查解析和连接,别急着看代码。
再看下载段:几乎为零,说明响应体是空的,服务器返回了个寂寞。
再看内容长度:一百多字节基本就是空壳或者错误页,正常页面不会这么轻。
用宝塔拨测的网站测速跑一次,DNS、TCP、TLS、TTFB、下载五段都列出来,再加上状态码,哪种情况一眼能分。
各自的常见机制
机制清楚,验证就有方向,不用一条条试。
空模板:后端渲染报错被兜住了,返回了空页,真实错误只在日志里,页面上一片安静。
脚本报错:主 JS 加载失败或者语法错误,页面结构在,内容没渲染,看起来像白屏。
资源被拦:CDN 或安全策略拦了关键脚本,控制台会报跨域或者 403,页面自然空。
跳转异常:一路跳到空白页或者登录页,用户看到的就是白,地址栏却看不出问题。
怎么验证
三步验证,比拍脑袋快得多,也能留下证据。
换一个地区、换一个网络再测,看是不是普遍现象,别在一台机器上死磕。
看返回内容的前几百个字符,是空标签还是错误提示,这一步最能定性。
本机打开控制台,看有没有红色报错,这一步最快,也最容易被跳过。
复测与结论
结论具体,下次才不用重来,接手的人也看得懂。
同一地址连测三次,确认白屏是稳定出现还是偶发,偶发的先记着。
修完再测一次,重点看下载段和内容长度有没有变正常,别只看「能打开了」。
结论写清是哪一种白屏,避免下次又从头猜,也能交给别人直接处理。
白屏这件事,先分类型,再谈修法。
类型对了,修起来就快。
快,是因为方向没跑偏。
方向不偏,时间就省下来了。
省下来的时间,可以多做一次复测。
复测这一遍,往往能改掉判断。