好幾個星期之前本人就發現自己的
github
在網頁打開顯示不了圖片的問題了,不過當時沒在意。
今天強迫症逼迫我一定要搞定它,於是去找了一些方法,自己做個記錄,有相同問題的夥伴可以參考一下。
一、問題
比如隨便打開一個項目,圖片都不能顯示了,我頭像也沒了,真是一個令人傷心的事
F12
打開控制檯看一哈
呦,一堆紅色×。主要報錯是Failed to load resource: net::ERR_CERT_COMMON_NAME_INVALID
去查了一下,博主john-zeng這樣解釋道:
實際上,可以認爲,
ERR_CERT_COMMON_NAME_INVALID
就是用一個錯誤的域名訪問了某個節點的https
資源。導致這個錯誤的原因,基本是:
- dns污染
- host設置錯誤
- 官方更新了dns,但是dns緩存沒有被更新,導致錯誤解析。
我覺得像是有點道理,解決方法就粗來了,hin簡單,往下看。
二、解決方法
主要思路就是使用本地hosts
文件對網站進行域名解析,一般的DNS
問題都可以通過修改hosts
文件來解決,github
的CDN
域名被污染問題也不例外,同樣可以通過修改hosts
文件解決,將域名解析直接指向IP
地址來繞過DNS
的解析,以此解決污染問題。
2.1 找到URL
打開github
任意未顯示圖片的網頁,使用元素選擇器(Ctrl+Shift+C
)放在顯示不了的圖片上,或者在無法顯示的圖片上右鍵-檢查元素,定位到該圖片的標籤,那麼你得到了它的URL,叫做src
屬性。
比如介個
在右面把它的網址複製粗來:
https://avatars2.githubusercontent.com/u/15832957?s=60&v=4
2.2 獲取IP地址
得到上述網址以後打開IPAddress.com這個網站,在搜索框輸入它的域名,就是https://
到com
那一部分,俗稱二級域名:
avatars2.githubusercontent.com
回車!!!下面你會看到該域名的信息和IP
地址:
可以看出IP是:151.101.184.133
,並且是2019.05.05最後更新的,alright,那麼我們就可以使這個IP和域名映射起來。
(其他如果有掛掉的圖片一樣使用此方法進行一一映射即可。)
2.3 修改hosts
具體咋映射呢?修改hosts
文件!!!本人使用的是windows
系統,所以使用Sublime Text
打開:C:\Windows\System32\drivers\etc\hosts
在文件末尾添加:
可以直接選中以下內容複製粘貼,20200328更新
# GitHub Start
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
151.101.184.133 gist.githubusercontent.com
151.101.184.133 cloud.githubusercontent.com
151.101.184.133 camo.githubusercontent.com
151.101.184.133 avatars0.githubusercontent.com
199.232.68.133 avatars0.githubusercontent.com
199.232.28.133 avatars1.githubusercontent.com
151.101.184.133 avatars1.githubusercontent.com
151.101.184.133 avatars2.githubusercontent.com
199.232.28.133 avatars2.githubusercontent.com
151.101.184.133 avatars3.githubusercontent.com
199.232.68.133 avatars3.githubusercontent.com
151.101.184.133 avatars4.githubusercontent.com
199.232.68.133 avatars4.githubusercontent.com
151.101.184.133 avatars5.githubusercontent.com
199.232.68.133 avatars5.githubusercontent.com
151.101.184.133 avatars6.githubusercontent.com
199.232.68.133 avatars6.githubusercontent.com
151.101.184.133 avatars7.githubusercontent.com
199.232.68.133 avatars7.githubusercontent.com
151.101.184.133 avatars8.githubusercontent.com
199.232.68.133 avatars8.githubusercontent.com
# GitHub End
然後保存文件就OK了,至於無法保存,沒有修改權限,鼠標右鍵-屬性-安全-修改權限;或將hosts
文件複製一份,修改之後,複製到原文件夾替換!
三、最後說幾句
還可以使用ipconfig/flush
對本地DNS緩存進行一次刷新,如果遇到網絡異常,可能是DNS緩存的問題,刷新一下,步驟。
- windows開始→運行→輸入:CMD 按回車鍵,打開命令提示符窗口。
- 再輸入: ipconfig /flushdns 回車,執行命令,可以重建本地DNS緩存。
再附上幾個命令:
ipconfig /displaydns # 顯示dns緩存
ipconfig /flushdns # 刷新DNS記錄
ipconfig /renew # 重請從DHCP服務器獲得IP
PS:另外要注意的一點就是,如果圖片再次不能顯示,只需要及時更新IP就行啦,這波操作不麻煩,你看我頭像回來了!!!
哈哈哈,沒錯,是李現