前言

对于自己的博客,上传图片都是通过hexo-asset-image插件进行上传,然后在文章中使用固定格式 image-20250108214823646 就可以上传了,当时具体的解决步骤在这里Hexo-GitHub Pages解决上传文章图片不显示的问题 | WeiSJ&HEXO,感兴趣的可以去看一下。

问题描述

但是用了两个月以后,就出现了仍然按照之前的方法,但是部署的时候就会看到图片的上传路径明显出现问题。比如我的文章名为visionTransformer学习记录。那么按照我上面链接中的方法,在文件夹中会有这样的格式

_posts
|--visionTransformer学习记录.md  # 文章编辑
|--visionTransformer学习记录  # 存放文章编辑中用到的图片

然后正常上传以后,在github的仓库中这篇文章下就是有一个index.html和用到的图片,如下

image-20250108210548851

而现在呢,只会有包含文章的index.html,图片会被随意上传到某个文件夹,比如这个样子:

image-20250108210757998

部署时可以看到这样的东西(马赛克遮住了我发表在CSDN上的问题):

image-20250108211334687

可以看到生成时文件夹就出现了问题,然后后面也是一连串的问题。

最初我以为是使用主题的问题,后来,我试着更换了主题,然后上传时还是这样的问题,也可能是插件的问题,我又卸载插件重新安装等一系列方法,都是不行。

解决方法

后来我无意看到一种方法,这种方法将 source/_posts/ 目录下的所有子目录中的 img 文件夹复制到 public/ 目录中。

hexo g
cp -r source/_posts/*/ public/
hexo d

根据我的存放结果修改为

hexo g
cp -r source/_post/*/ public/
hexo d

cp -r source/_posts/*/ public/(代码框里的source有问题,直接复制这里的。)

再次部署,图片成功上传,并且这种方法不需要使用这种固定格式

image-20250108214837054,可以直接把图片黏贴到markdown文件中,如下。

image-20250108212801193

但是,这样部署以后图片文件夹全部跑到了github仓库中首页而不是post下对应的文件夹中。

虽然还是有点瑕疵,但总归解决了问题。之后如果有新的问题再去看看其它的解决方法。