一个方便的在hexo博客中插入图片的方法
在 hexo 搭建的博客中,一直存在一个问题就是本地在 Typora 能看见的图片,在上传之后不能显示。
在网络上常见的解决方法是打开 _comfig.yml 中的
post_asset_folder: true
,但是对于每篇文章都新建一个文件夹还是比较繁琐了,我们更希望的是有一个单独的
/images 文件夹来放置图片,今天介绍一个非常简单的解决方法。
Typora 设置
在设置里找到图像 -> 插入图片时,选择 “复制到指定路径”,然后在下面选择你想放置图片的文件夹(一定要在你 blog)文件夹里面,然后注意,一定要勾选 “优先使用相对路径”,这样设置,我们的本地图片路径就是 “../images/xxx.jpg”,配合之后的操作才能被正确解析图片位置。(我们的文章在 source/_posts,图片放置在 source/images)

Hexo 设置
进行以上设置后,我们仍然不能看到博客上的图片,这是因为我们把博客部署后,文章的图片采用相对路径
../images/xxx.png
,但是生成后,文章的 url 被放置在
http://localhost:4000/2025/03/28/文章标题,此时的路径就有问题了,因为图片文件夹应该在
http://localhost:4000/images。
我们可以新增一个 js 脚本,帮助我们转换路径。
进入博客的路径,编辑 _config.yml,新增以下设置:
1 | # 确保基础URL正确 |
注意以上设置不能重复,如果之前有的话就注释掉/删掉,否则hexo g
会报错。
我们打开主题对应的 script 文件里,next
为:hexo-theme-next/scripts/
,新建一个
fix-image-path.js
文件,内容如下:
1 | hexo.extend.filter.register('after_post_render', function(data) { |
它可以帮助我们将相对路径转化为绝对路径。
此时我们尝试新建一个博客并插入图片
1 | hexo new "test" |
如果看到图片路径如下图所示,证明本地成功了:

然后在本地服务器测试效果:
1 | hexo clean |
进入博客后,如果看到图片,就证明已经成功啦!