WEB

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

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

借助 Cloudflare 做镜像网站

我开始是利用 Cloudflare 的 Worker 做了个镜像,具体实现见这里 省钱秘笈之巧用 Cloudflare 免费做个镜像网站
因为我的 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/[email protected]/openwrt/menu.png
master 可选择仓库的不同分支,如果像我一样仓库只有 master 的分支,@master 是可以省略的,直接用图片链接:https://cdn.jsdelivr.net/gh/harry3633/blogmianao/openwrt/menu.png

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

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

微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

回复

  1. Radium Radium
    Firefox 74 10

    那如果超过20M的资源有什么好的图床一类建议呢?目前我用JsDelivr

    1. harry harry
      Chrome 83 10

      七牛?不知道,我没这种需求

  2. Action Action
    Chrome 81 10

    免费是免费,操作有点复杂,其实用对象存储也不错。

  3. Sam.Z Sam.Z
    Firefox 76 10

    好多静态博客都是用的jsDelivr来转,速度确实不错,放Github还是比较靠谱的~ 国内这些图床,想想还是算了。

This is just a placeholder img.