解决博文图片不显示的问题

时间:2024-02-29 17:32:45

问题

最近写博文的时候发现图片都不显示了:

博文用到的图片一直是用github做图床,果然github里的图片也不显示了:

报错:Failed to load resource: net::ERR_CERT_COMMON_NAME_INVALID
这样很影响博文内容的理解啊,在网上搜了一下找到解决方案,记录一下。
以下解放方法参照博主Antrn的这篇博文:【最新】解决github图片不显示的问题

问题根源

博主john-zeng这样解释道:

实际上,可以认为,ERR_CERT_COMMON_NAME_INVALID就是用一个错误的域名访问了某个节点的https资源。导致这个错误的原因,基本是:
  ① dns污染
  ② host设置错误
  ③ 官方更新了dns,但是dns缓存没有被更新,导致错误解析。

解决步骤

主要思路就是使用本地hosts文件对网站进行域名解析,一般的DNS问题都可以通过修改hosts文件来解决,github的CDN域名被污染问题也不例外,同样可以通过修改hosts文件解决,将域名解析直接指向IP地址来绕过DNS的解析,以此解决污染问题。

找到URL

打开github任意带有挂掉图片的网页,使用元素选择器(Ctrl+Shift+C)放在显示不了的图片上,或者在挂掉的图片上右键-检查元素,定位到该图片的标签,那么你得到了它的URL,叫做src属性。
比如:

或者直接在Console栏右键保存出错日志:

打开日志可得到图片链接:

复制该链接:
https://raw.githubusercontent.com/Amyoyoyo/media/master/blog/dp01backpack.gif

获取IP地址

得到上述网址以后打开IPAddress.com这个网站,在搜索框输入它的域名,就是https://到com那一部分,俗称二级域名:
raw.githubusercontent.com

回车,得到该域名的信息和IP地址:

可以看出IP是:199.232.4.133,并且是2019.10.18最后更新的,那么我们就可以使这个IP和域名映射起来。
(其他如果有其他不能显示的图片一样使用此方法进行一一映射即可。)

修改hosts

具体怎么映射呢?修改hosts文件!!!若使用的是windows系统,以管理员权限打开hosts文件:
C:\Windows\System32\drivers\etc\hosts
在文件末尾添加:

# GitHub Start
192.30.253.112    github.com
199.232.4.133    raw.githubusercontent.com
# GitHub End

PS:另外要注意的一点就是,如果图片再次挂掉,只需要及时更新IP就行啦