前言
今天晚上准备上github看看项目的时候,结果一打开给我吓一跳
样式全没了
如果不是程序员,遇到这种情况我可能就摆烂了,但我是个前端,所以多少操作一下。
问题排查
首先遇到这种页面可以展示,但是没有样式的情况,通常我们会怀疑是不是资源服务器挂了。
一般这种网站静态资源会单独存放在别的服务器中,方便做缓存和减少服务器压力。
第一步就是排查网络请求,确定当前服务器是否异常。
下图可见(静态资源获取异常):
第二步是基于现象排查原因。
提示信息 " provisional headers are shown
" 是一个网络请求的警告信息,不是报错。
它表示浏览器在请求发送之前只能显示部分请求头信息。通常不会影响请求进行。
此外,可以观察到所有静态资源请求(github.githubassets.com
)都被拦截,但来自 GitHub.com 的 JavaScript 请求正常返回。
因此,我们需要考虑是否当前的静态资源服务器域名异常导致的资源获取异常。
基于上述确定的域名导致的请求异常的方向
第三步是排查该域名请求异常的原因。
首先检查代理和浏览器配置是否对该域名做了限制,检查之后一切正常。
然后检查浏览器是否启动如短信拦截等插件,有时候插件判断有误会误拦截,检查之后没启动此类插件。
到这里常规检查都没问题,哪还有什么会导致?
答案是DNS解析,可能是DNS解析的过程中获取ip异常,这样子也会导致资源读取失败
问题解决
回顾一下,域名解析的过程是什么样子的? 首先查找本地人host文件是否存在映射,如果没有走DNS解析。
第一步
我们首先进入 [www.ipaddress.com/] ip查询网站
第二步
将异常的网站传入,查询真实ip
第三步
打开host文件
我这里编辑的是mac,所以我的host文件会在private/etc 中
这边建议用访达打开,因为host默认是不允许修改的
打开之后,进入到etc目录下,右键host文件显示详情,更改文件权限。
第四步
在host文件中,给 github.githubassets.com
加上ip映射
到此ip纠正就完成了
第五步
刷新github 验证是否正常
可以看到正常显示了。
总结
以后朋友们遇到这种域名请求都g了的情况,可以先排查下是不是浏览器做什么配置或者起了什么代理,然后排查当前是否启动了什么插件,特别是短信拦截类的,如果还是不行就可能是在DNS解析的过程中读取的ip不正确,对于这种情况就查一下正确的ip,然后手动去host文件加一下映射。