如何解决GitHub作图床国内无法显示的问题

最开始我用 WordPress 是直接将图片放到 VPS 上,后来发现转移有些不方便也不好管理,再加上一直是便宜主机,容量也有限。后来我又转到 ya.ru,上传方式和速度都不理想。
最后还是用了 GitHub,管理方便又免费,速度也不错。不过最近发现 raw.githubusercontent.com 和 github.com 在国内很多地方连接都有问题,导致图片无法正常显示,不得已研究了一下。

借助 Cloudflare 做镜像网站

我开始是利用 Cloudflare 的 Worker 做了个镜像,因为我的 GitHub 图片地址都是如 raw.githubusercontent.com/harry3633/blogmianao/master/openwrt/menu.png 这样的,所以我把 raw.githubusercontent.com 做了个镜像,然后用 xxxxx.xxxxx.workers.dev 替换就可以了。
虽然很方便,Cloudflare 免费账户每天 10 万次请求,对我这样的 blog 来说也是足够用了。但是,就怕别人盗了图片链接,可能很快就没了。

借助 jsDelivr 的 CDN

jsDelivr 是国外的一家优秀的公共 CDN 服务提供商,它可以加速 Github 仓库的文件,比如图片, js 或 css 等。
官方网站:www.jsdelivr.com

实现方式也是很简单,无须注册或改代码,直接替换链接即可。
例如:
我的图片原始链接:https://raw.githubusercontent.com/harry3633/blogmianao/master/openwrt/menu.png
harry3633 是 GitHub 账号名,blogmianao 是仓库名,openwrt/menu.png 是图片在仓库的具体位置。
更新链接为:
https://cdn.jsdelivr.net/gh/harry3633/blogmianao@master/openwrt/menu.png
master 可选择仓库的不同分支,如果像我一样仓库只有 master 的分支,@master 是可以省略的,直接用图片链接:https://cdn.jsdelivr.net/gh/harry3633/blogmianao/openwrt/menu.png

如果在仓库选择了 release 进行发布,那么 @ 后面可以写版本号,如 https://cdn.jsdelivr.net/gh/harry3633/blogmianao@1.0/openwrt/menu.png,一般来说作为图库没必要搞这么复杂,大概只有一些 css,js 文件加速才会用到吧。

注意 jsDeliver 不支持加载超过 20M 的资源,所以图片还是不要搞大了,我一般都是先在 tinypng.com 压缩后再放到 GitHub,据说 Github 仓库的容量有 1G 的上限,也有说硬性限制是 100G,反正对我的 blog 来说够用了,不够再开个仓库了。

阅读剩余
THE END