所有的所有都由自己掌控。 ——Sion
引言
2022_3_25日,gitee图床失效,所有图片都返回一个gitee的icon,GitHub图床的速度太慢,sm.ms不稳定,遂写此文。
众所周知,一篇文章大多包含文字、解释性的代码、公式图表等,但是当文字不能表达想法的时候,图片就派上用场了,很多时候图片就是文章的灵魂所在。
但在静态博客领域,图床一直是令人头疼的问题,免费否?稳定否?防盗否?当然大多数人首先考虑的都是费用问题,其次才是稳定性问题,这也就催生了一大批免费的图床[1],当然其稳定性嘛,实在不敢恭维,反正我老是加载不出来。至于付费的嘛,因为人都是短视的动物,触及了金钱,哪怕是一分钱,也很少有人用。
本文就来介绍一种折中的方法,即免费、又相对稳定,也具备完美的移植性。
hexo博客的路径详解
玩Hexo博客的人都知道,博客的文件树大概是这样子的:
1 | blog |
相对路径
如果你的需求是这样:
开启了hexo的资源文件夹功能,每次创建了一个demo.md就会同时创建一个demo目录,然后想在demo目录里放图片,想在本地和hexo都能预览。
那么,使用这个插件可以解决问题hexo-image-link,直接安装即可。
但如果你跟我一样是个强迫症,受不了一堆杂乱的文件夹,在_post
文件夹分类存放了各个类型的文章,而不是一篇文章一个文件夹,那么可以用这个笨方法来解决:
先在souce目录下里创建一个images文件夹,然后再创建各个种类的文件夹来放置不同类型文章的图片,比如art
、linux
daily
,当然英文目录最好,hexo博客文章在网页中显示的链接是http://localhost:4000/2022/03/25/68cd9b1365e0/
,所以我这样引用:../../../../images/art/pic1.jpg
,也就是跳过了文章名、日期、月份、年份,直到根目录(souce)下,再往下到image目录,最后到图片,虽说有点变态,但是能用啊。不过这样做的缺陷是不能在本地编辑器里预览。
托管商
这是本文的核心所在,但也没有太多要讲的,若要提一下的话就是,cloudflare以及其它的托管商[2]cdn本身就很牛(除了github之类的代码托管平台),根本就不需要图床啊,全放本地就好。
而且这样做的话,如果你同时托管在多个地方,一个图片资源也不会都指向一个地址,嗯…就像是分布式储存。
但是这样有一个坏处:不易转移,如果你想要把一些文章转移到别的平台就需要一张一张上传图片,非常麻烦,所以另一个备选方案就是利用Cloudflare的R2来作为图床,参考则篇文章[3],可以学会如何配置储存。