关于hexo插入图片的问题

最近发现hexo在文章中插入图片的时候有点麻烦,查了一下发现还是有很简洁的方法的,总结一下自己试过的几种方式:

本地图片引用(自动生成目录)

  • 将配置文件_config.yml里面的post_asset_folder字段修改为true
  • 在Hexo主目录下执行:npm install hexo-asset-image --save,这是下载安装一个可以上传本地图片的插件
  • 插件安装完毕后,在建立新的文章时,如hexo new test_image,在source/_posts/目录下除了会生成“test_image.md”以外,还会生成一个与文章标题相同的目录(source/_posts/test_image/),这个目录就是存放文章内图片的地方
  • 在编写文章时,先将图片放到相应的同名目录下,在文章中按markdown语法进行引用,注意此处是相对路径,例如:![](test_image/image-1.png)

优点

  • 每个文章中的图片单独存放,并且图片目录会自动生成,方便图片的管理与查找

缺点

  • 文章目录(source/_post/)日积月累会变得很大,里面既有文章又有图片目录,稍显乱一些
  • 图片要先拷贝到相应的图片目录下,做好图片命名,然后在文章中引入,图片少还ok,图片多的话感觉会比较繁琐
  • 图片复用不是很方便

目前我自己的文章中图片不是很多,所以采用的还是这种方式。

本地图片引用(手动生成目录)

如果想对图片进行统一管理,可以单独创建一个图片目录,将所有的图片都放到一起,在source目录下创建一个images的目录source/images,在文章中进行引用的时候,要写绝对路径,例如:![](/images/image-1.png)

优点

  • 所有的文章图片在公共目录统一进行存放和管理,不会弄乱文章目录,图片复用方便

缺点

  • 图片目录会变得非常大,如果想按文章细分目录保存的话,需要手动创建目录
  • 与上一个方法有同样的问题,如果文章中的图片较多,引入时会麻烦一些

远程图片引用

推荐这种方式,前两种方式都是本地存储,这一种方式是放到图片服务商的服务器当中,也就是所说的图床,国内比较好的有七牛云,微博,腾讯云等等,推荐一个app:IPic(下载地址),可以直接将图片上传到图床当中,并自动生成markdown地址,在文章中直接引用,试了试用起来真的很爽,哈哈哈。IPic目前上传到微博是完全免费的,上传其他的服务商app需要解锁付费使用(有个免费试用期)。

优点

  • 图片是上传到服务商,不占用自己的本地空间
  • 图片服务商会对图片加载做优化,访问速度会比较快
  • 通过像IPic这样的app进行上传并自动生成好markdown地址,非常的方便、简单,比自己去本地管理图片要方便很多。

缺点

  • 如果服务商挂了,图片访问也就跟着挂了(可能性极低)