起因
很简单: 换主题
事情起因还得从创建博客时说起…
虽然我非常喜欢这个默认封面,但还是希望能更个性化点,所以我就从hexo文档中找了个我中意的主题arknights
起初本地部署得很成功,所有的界面都如愿运行,于是就马上开始尝试部署网站
然后
然后就部署失败了
1 | 01:48:23.319 fatal: No url found for submodule path 'themes/arknights' in .gitmodules |
…?
这究竟是怎么回事呢?
当时我以为此主题另有其依赖项,所以把主题依赖项都重新安装了一遍
重试仍然同样的报错,在上网查了一通后无果,便放弃了此主题的安装和部署,重回默认主题
次日
此时默认主题已经部署成功了
本想着对默认主题进行改进,可是一打开themes文件夹发现只有一个名为.gitkeep的文件,查后却知此文件相当于充当空文件的意思
…
到头来还得去找默认主题,不过在_config.yml里面就可以很直观的看到此主题的名字叫landscape,顺着查下去很容易就找到了此主题,照着文档进行安装并测试
1 | git clone --depth 1 https://github.com/hexojs/hexo-theme-landscape themes/landscape |
成功将landscape主题安装到themes文件夹内,并成功本地运行。
随后参考http://scholargeek.top/成功修改了网页图标和背景图片
正当把此推送到github仓库托管时,又传来了噩耗
1 | 02:18:24.214 fatal: No url found for submodule path 'themes/landscape' in .gitmodules |
那看来问题不是出在主题上了
重新查错搜寻后,有了新收获:submodules说明在部署时请求了此文件的子文件,就说明此文件其实是在部署的时候仓库才被克隆进去的,
也就说明themes/landscape为子文件,且没有.gitmodules对原仓库进行克隆这下就简单了(
在.gitmodules写上对此文件的仓库地址就好了
1 | [submodule "themes/landscape"] |
然后上传可以成功部署;D
但是!
部署虽是成功部署了,可是部署后的网页背景图竟然消失了,其他图标也没有显示
更困惑了
为什么?难不成从仓库克隆部署直接把本地文件覆盖掉了?
来确实有这种可能,但目前需解决的是能不从别人的仓库克隆转而直接使用本地文件?
后经一番搜索发现可以把子模块转化为普通文件夹
打开 .git/config 删除下列代码
1 | [submodule "themes/landscape"] |
然后再把themes/landscape里的.git删除
1 | rm -rf themes/landscape/.git |
这样部署时就不会去拉取子仓库从而使用本地theme文件渲染了
最后的最后
终究还是部署成功了我感觉%99归咎于我没好好学其git只是一味地强行部署…
顺带一提现在的llm理解能力已经非常强大,最后的问题网上查了半天愣是没找到任何参考,ai就在那转了一会就有了标准答案。我不是吹ai,但它能把我所讲的抽象话语理解透彻并作出回答实对我来说甚是惊讶