Hexo部署后图片异常
因为之前的博客各种乱七八糟的东西都有,不太方便分享,干脆删库新建两个博客。
主博客存储专业相关的东西,另一个博客随便写写随笔。但是在部署博客时出现了图片加载404,部分博客无法加载的问题。
问题描述
主博客设置在了 github.io
仓库下,另一个博客则在其他仓库中,都使用同仓库不同分支利用 Github Actions
进行 CI/CD 自动部署。
部署主博客的时候一切正常,但是部署完个人博客后发现,更换和主博客不同的图片时,在本地运行 npm server
一切正常,但是部署后则图片会出现 404 报错,打开控制台后现实也很草率:
1 | Failed to load resource: the server responded with a status of 404 () /404.html:1 |
直接蚌埠住了,然后想着多发几个博客,试试其他图片,结果 ……
还是本地一切正常,部署后主页能看到新的博客,但是点进去就开始疯狂加载(但加载不出来),直接卡住了,>﹏<
打开控制台看到报错如下:
1 | GET https://cx330-502.github.io/2023/09/05/2023-09/2023-09-04-2/ net::ERR_ABORTED 404 |
不是一条,是几十几百条~~~
解决方案
可能有人已经看出问题了,
我的仓库实际上并不是 github.io
但是这里的 GET
请求却是对 https://cx330-502.github.io/
发出的,能请求到就有鬼了。
接下来通过 New bing 的帮助,我找到了相关配置选项的位置——在 Hexo 的根文件夹的配置文件 _config.yml
中有这样一堆配置:
1 | # URL |
于是我兴高采烈的配置了 url ,结果 …… 并没有用
事实上最重要的配置文件在这里并没有给出来,查阅 Hexo 的 官方文档) 后可以看到这里的参数如下:
参数 | 描述 | 默认值 |
---|---|---|
url |
网址, 必须以 http:// 或 https:// 开头 |
|
root |
网站根目录 | url's pathname |
permalink |
文章的 永久链接 格式 | :year/:month/:day/:title/ |
permalink_defaults |
永久链接中各部分的默认值 | |
pretty_urls |
改写 permalink 的值来美化 URL |
|
pretty_urls.trailing_index |
是否在永久链接中保留尾部的 index.html ,设置为 false 时去除 |
true |
pretty_urls.trailing_html |
是否在永久链接中保留尾部的 .html , 设置为 false 时去除 (对尾部的 index.html 无效) |
true |
甚至下面还有个注释:
网站存放在子目录
如果您的网站存放在子目录中,例如
http://example.com/blog
,则请将您的url
设为http://example.com/blog
并把root
设为/blog/
。
它真的,我哭死。那所以为什么最重要的 root
参数没直接给出来呢 orz 。
于是,把上面的配置改成:
1 | # URL |
可以看到在本地运行时,url 变成了 http://localhost:4000/*****/
再 push 一下,部署完成后看到完美解决问题