原创文章,转载、引用请注明出处!
前言
19年3月份开始了解并使用hexo环境下搭建的博客,当时的搭建过程是极其顺利的。所以在建设初期并没有想到要做这样的记录。
直到4天前,也就是9月7日,我在对上一篇,关于视频摘要的博客进行更新时,试图上传一个比较大的文件到git上时出现了问题,导致了我的博客无法再进行更新。
在我进行了一系列垂死挣扎的操作之后,选择了重装整个hexo环境以及按照原来的模样重新搭建博客。整个过程下来,我真的是心力憔悴,也遇到了许多新的问题。我突然觉得,有必要将这些问题做个记录。一是为了以后查自己找方便,二是能为别人做个参考,三是希望能从这些问题中,学习或者领悟到一些当程序员的必要的品质。毕竟对于程序员来说,最重要的部分就是查bug和调bug,其余的时间也说不定都是在写bug。
这里将记录本博客建设过程中遇到的一切有意义的问题。遇到问题就会记录或对相应的部分做更新,没有什么上下文关联。
时刻牢记:遇到bug,baidu、google以及Official documents才是正道,和大佬交流会有奇效。
hexo博客的搭建和重新部署问题
从零开始搭建hexo博客
这个话题在网上做一下搜索,写的人很多,不做赘述。
唯一需要注意的就是,不同操作系统环境下可能会有一些小的差别,但是总的步骤基本都是一致的。无非就是本地环境安装以及github的仓库设置,最后再学一下在terminal上敲hexo命令就齐活了。
我的本地环境是macOS,类UNIX的系统中下布置hexo环境还是十分友好的。Win:?
Mac 系统下搭建hexo个人博客:https://www.jianshu.com/p/77db3862595c
重新部署hexo博客
这里的“重新部署”,包括以下的情况:
博客本身是没有问题的,只是想换一个新的环境去部署。比如说更换了个人PC等情况。
博客的建设方面出现了问题,包括但不限于本地环境的更改、提交新版本时的出现的不可逆的问题(基本上都是可逆的,不可逆都是因为个人能力问题
问就是菜)等。
对于第一种情况,略微做一下网络搜索,也有很多人写,而且基本和从零开始搭建一样,只是中间个别重复的步骤不用再执行一遍而已,比如git仓库的设置。
第二种情况就比较有说法了(我就是那个发现了bug之后又发现自己特别菜然后重新布置了整个博客的人):
Node.js和npm的版本
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。
hexo需要Node.js支持。布置hexo环境时需要首先安装Node.js。
如果是初次安装的话,直接Node.js安装最新版本即可。通常来说,nmp会跟随着Node.js一起安装。
但如果本地环境在hexo部署前已经有Node.js的环境,这时就要注意了:hexo会随着其依赖项的更新而更新。如果本地的Node.js版本太久远,一定要记得更新。截止到写作时,目前官方文档给出的建议是:Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本。
还需要注意的是,Node.js做更新时,需要手动对nmp单独做更新。
启动页面显示extends includes/layout.pug等
重新布置完成后,启动界面显示如下信息:
extends includes/layout.pug block content include includes/recent-posts.pug include includes/partial
这也明显是依赖项问题,执行如下命令即可。
npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive
上述命令会有各种各样的Warning,比较显眼的一个是:jade做了rename,请安装rename后的包。我是按照它的提示做了新的安装,但是并不清楚不安装这个新的包会有什么问题。
上述命令运行时,如果提示权限不足,命令中带上sudo
;如果npm在安装包时提示rollbackFailedOptional
,可以简单的理解为网络不好,改用淘宝的npm镜像即可:
npm config set disturl https://npm.taobao.org/dist
用于提交git的ssh
如果之前使用过ssh的话,直接在本地文件中找到ssh的文件,复制内容到GitHub上即可。ssh可以重复使用,即使更换了新的仓库也无所谓。 不用ssh,不嫌麻烦的话每次更新输入账号密码也行
向博客中提交大文件
这次博客的奔溃就是因为这个原因。我在github上hexo项目的issue中有提问,叙述了这次经历。
Error uploading large file #4523:https://github.com/hexojs/hexo/issues/4523
有一位大佬给出了一个解答,并且得到了开发者的赞同,然后关闭了问题:
hexo的命令中,hexo d
的作用是将blog本地路径中生成的public提交到git的仓库中。一看这个解答,我也觉得很有道理:无非就是解决提交版本的问题嘛!
但是我犯了一个致命的错误:提交git的路径。实际上我在第一天还在迷糊的时候就注意到了这一点,并隐隐觉得这是问题的根本:我要是在blog的子目录下进行这个工作,不就把blog的里整个内容提交进去了吗?但实际上git仓库里只有public中的文件啊!
于是,我找到了回答我问题大佬的主页,发现了他的blog地址,并在他的blog中寻找到了他的邮箱,然后发邮件进行询问。出现了以下的讨论:
是的,当我重新布置了整个环境之后大佬才给出了回复。属实无奈,我并没有办法实践这位大佬给出的方法再作一遍死就行,不过这应该就是终极的解决方法。非常感谢这位大佬。
实际上macOS会自动的隐藏一些配置类文件(我的为数不多的实践和记忆告诉我,大概Win10也会),如果不手动去显示隐藏文件的话,不会看到上述邮件中的提到的.depoy.git
目录。实际上在此之前我也查看过隐藏文件,只是并没有察觉到是这里的问题。
cmd+shift+.
,以及git
的一整套命令,这次牢记。
theme中的问题
theme中的问题主要体现在网页的显示上。对网页效果展示有强迫症或者力求美观,这些问题会凸显出来。
Cxo
截止到本篇发布的时间,在用的theme是Cxo。在hexo.io的主题展示页面搜索Cxo就可找到。
选择这个主题的原因是因为比较简单,符合审美。
因为头像是猫猫头,我永远喜欢猫猫头
这个主题的作者2018年还有稀疏的commit,2019和2020完全没进行过更新,也就是说跑路了!由于hexo的各种依赖项是一直在更新的,所以现在还想用这个主题的话,会出现很多的问题。还想要用的同好们,慎选!
独占猫猫头
不蒜子访问计数显示
这个属于老生常谈,大部分19年以后不更新的主题都会遇到这个问题。具体原因是因为18年10月份以后不蒜子的域名更改了,导致script引用不了,从而无法进行统计。
不蒜子官网做了解释(注意下方小红字),以及新的写法:
具体做法:在下面的路径里按照官网提示修改就行。
layout/includes/partial/head.pug
“翻页”箭头显示错误
主页中换页处的下一页本该显示为“>”,但是显示为“>”。
更新本地环境后出现的问题,猜测也是由依赖项的更新所导致的。
已经有人提过issue且得到了可以解决问题的回复。实际上就是编码的问题。以及向前翻页的箭头的编码可以改成<
。
当前查看进度条不适用
单篇博客写的太长的话,还没有拉到底部,进度条显示就已经满了。
19年就有这样的问题。
未解决。
目录显示错误
部分时候出现目录不随着显示的内容而变动,同时也有一些博客的目录是正常的。
更新本地环境后出现的问题,无法猜到到底是什么原因导致的。
未解决。
内容在本地显示不全
2021年1月31日更新
如果.md文档写的太长的话(没有具体的数值,反正就是长了之后),会出现在localhost上显示内容不全的情况。
这个问题早就出现了,只是今天又写了博客,想起来了。猜测是theme的问题。
未解决。
2020年11月12日更新
更新时出现SSH失效
使用hexo g -d
进行更新时,出现如下提示。
根据报错,是SSH密钥的访问权限问题。
以This private key will be ignored
为关键词进行搜索,进行如下操作后(任意目录均可)恢复正常。
之前因为在根目录敲了一些不该敲的命令,重装了电脑的系统。猜测是因为重装系统
导致的这个问题。