某hub图片看不了?很着急啊!

断了今生、忘了曾经 提交于 2021-02-10 10:00:09

一个很难受的问题

朋友,你们逛全球最大的同性交友网站Github的时候,是否遇到过这个问题?

图片都无法显示了。这是什么情况?我已经遇到过好几次了,之前没时间管它,不过一直这样也不是办法啊,太难受了😒!今天我来探探究竟。

一探究竟

猜测:难道是缓存问题?

于是我使用组合键 ctrl + f5强制刷新了一下网页,发现不起作用。我又打开f12,强制清除缓存:还是不行,图片依旧无法显示。

但是我打开f12后注意到一个问题,console里面一片红色:

看这样子应该是因为网络问题,加载图片资源失败了。

考虑到github是国外的网站,难道是被墙了?

应该不是,除了图片之外的代码和文档都可以访问,我猜测应该是图片服务器访问失败了。

于是我定位到图片的地址,看看这些图片是从哪个服务器请求的。

使用这个小箭头点击网页上图片的位置,可以看到源码:

然后我看到一个头像的图片地址是:https://avatars.githubusercontent.com/u/3961183?s=64&v=4

新打开一个窗口访问下这个地址:哦豁,果然不出所料,无法访问。

域名映射IP

那么问题出在哪里呢?我打开百度一顿搜索,找到了答案:

这位网友说出现这个问题,一般有三种情况:

  1. dns污染
  2. host设置错误
  3. 官方更新了dns,但是dns缓存没有被更新,导致错误解析。

OK,知道问题的原因,我们就顺着他的思路来尝试解决下问题。

这里DNS解析出现问题,那么我们修改hosts文件,将域名和IP映射起来。

不知道hosts文件是什么东东的同学,可以看下这篇文章了解一下:https://blog.csdn.net/zhaiax672/article/details/79315584

1. 搜索域名对应的IP:

通过 https://www.ipaddress.com 这个网站,先找到域名avatars.githubusercontent.com对应的ip地址。

在搜索框里输入需要查询的域名,点击搜索按钮:搜索结果:githubusercontent.com 对应的IP地址为:199.232.96.133

2.修改hosts文件

hosts文件位置:C:\Windows\System32\drivers\etc

使用notepad++编辑器打开hosts文件,添加一条映射规则:

199.232.96.133  avatars.githubusercontent.com

ps: 添加完此映射关系之后,可以使用这个命令刷新下本地的DNS缓存:ipconfig/flush,打开CMD,输入 ipconfig/flush 即可。

然后我们再来访问刚才访问失败的图片:

可以看到,图片可正常访问。

那么我们再回到github,访问试试:

图片也都正常显示了,至此,我们的问题已经得到解决😉

我在网上找到了一份比较全的dns配置,这里也贴一下吧:


140.82.113.3      github.com
140.82.114.20     gist.github.com

151.101.184.133    assets-cdn.github.com
151.101.184.133    raw.githubusercontent.com
199.232.28.133     raw.githubusercontent.com 
151.101.184.133    gist.githubusercontent.com
151.101.184.133    cloud.githubusercontent.com
151.101.184.133    camo.githubusercontent.com
199.232.96.133     avatars.githubusercontent.com

同学们可以直接把这个copy到你本地的hosts文件里,执行命令:ipconfig/flush 后即可正常访问。

举一反三

如果再次遇到类似的问题,我们可以尝试通过配置DNS来解决。方法很简单,先在 ipaddress.com 找到域名对应的ip地址,然后把 ip和域名的映射规则配置到hosts文件即可。

比如:199.232.96.133                  avatars.githubusercontent.com

最后别忘记使用命令ipconfig/flush 刷新下DNS缓存哦(好像不执行此命令也可以,反正我本地是可以的,哈哈)

为了方便大家理解,我粗略画了一张图描述图片资源下请求的过程:

用户在访问 avatars.githubusercontent.com 这个域名的时候,会先通过本地DNS解析出实际的IP地址,如果有,则直接根据IP访问实际的文件服务器获取资源;如果本地解析不出来,会通过网络的DNS解析获取IP地址进行访问。最后文件服务器会将文件资源返回给浏览器请求,展示给用户。

我更新了《10万字Springboot经典学习笔记》,点击下面小卡片,进入【Java开发宝典】,回复:笔记,即可免费获取。


点赞是最大的支持 

本文分享自微信公众号 - 武哥聊编程(eson_15)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!