解决hexo-abbrlink与hexo-asset-image冲突导致图片不显示的问题
hexo-abbrlink 插件
hexo 配上中文标题时,路径就将中文汉字转码,因此变得非常长。abbrlink 就是把这个长路径通过 crc 的校验算法,转化成固定的字符串,把长路径缩短成短路径,实现 SEO 优化。
hexo-asset-image 插件
hexo-asset-image 是将 Markdown 中的图片链接去掉目录部分而直接使用图片名的插件。其在源码中注释的功能如下:

两者之间的冲突
若只使用 hexo-asset-image 插件,每个文章都会生成一个文件夹,在该文件夹下包含网页 html 文件和该文档中的图片,如下图所示。

此时 html 可直接读取图片并引用。
添加 hexo-abbrlink 插件后,文件夹格式被改变,每一篇文章的图片放在了以文章代码命名一个文件夹中,如下图

此时网页便无法加载图片了。
解决方法
打开 hexo-asset-image 插件文件夹:\node_modules\hexo-asset-img,找到index.js文件。
插入这两句代码,如下图所示。

1 | var abbrlink = data.abbrlink; |
同时将这句代码注释掉:
1 | // data.content = data.content.replace(regExp, "", "g"); |
保存后使用hexo clean清除缓存,再次编译便可正确读取图片。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hongsky Blog!
