Fy J
CS专业扫雷学深造学者互联网冲浪一级选手
FRIENDS
jhn

博客网站的建设问题集合

09-11-2020 20:47:24 闲谈 hexo博客建设
Word count: 2.5k | Reading time: 9min

原创文章,转载、引用请注明出处!


前言

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单独做更新

node版本更新:https://www.jianshu.com/p/0a247218b486

启动页面显示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就可找到。

https://github.com/Longlongyu/hexo-theme-Cxo

选择这个主题的原因是因为比较简单,符合审美。

因为头像是猫猫头,我永远喜欢猫猫头

这个主题的作者2018年还有稀疏的commit,2019和2020完全没进行过更新,也就是说跑路了!由于hexo的各种依赖项是一直在更新的,所以现在还想用这个主题的话,会出现很多的问题。还想要用的同好们,慎选!

独占猫猫头

不蒜子访问计数显示

这个属于老生常谈,大部分19年以后不更新的主题都会遇到这个问题。具体原因是因为18年10月份以后不蒜子的域名更改了,导致script引用不了,从而无法进行统计。

不蒜子官网做了解释(注意下方小红字),以及新的写法:

具体做法:在下面的路径里按照官网提示修改就行。

layout/includes/partial/head.pug

“翻页”箭头显示错误

主页中换页处的下一页本该显示为“>”,但是显示为“&#62”。

更新本地环境后出现的问题,猜测也是由依赖项的更新所导致的。

已经有人提过issue且得到了可以解决问题的回复。实际上就是编码的问题。以及向前翻页的箭头的编码可以改成&lt

https://github.com/Longlongyu/hexo-theme-Cxo/issues/42

当前查看进度条不适用

单篇博客写的太长的话,还没有拉到底部,进度条显示就已经满了。

19年就有这样的问题。

未解决。

目录显示错误

部分时候出现目录不随着显示的内容而变动,同时也有一些博客的目录是正常的。

更新本地环境后出现的问题,无法猜到到底是什么原因导致的。

未解决。

内容在本地显示不全

2021年1月31日更新

如果.md文档写的太长的话(没有具体的数值,反正就是长了之后),会出现在localhost上显示内容不全的情况。

这个问题早就出现了,只是今天又写了博客,想起来了。猜测是theme的问题。

未解决。


2020年11月12日更新

更新时出现SSH失效

使用hexo g -d进行更新时,出现如下提示。

根据报错,是SSH密钥的访问权限问题。

This private key will be ignored为关键词进行搜索,进行如下操作后(任意目录均可)恢复正常。

之前因为在根目录敲了一些不该敲的命令,重装了电脑的系统。猜测是因为重装系统导致的这个问题。


< PreviousPost
论文研读:Wavelet-SRNet
NextPost >
基础:视频摘要
CATALOG
  1. 1. 前言
  2. 2. hexo博客的搭建和重新部署问题
    1. 2.1. 从零开始搭建hexo博客
    2. 2.2. 重新部署hexo博客
      1. 2.2.1. Node.js和npm的版本
      2. 2.2.2. 启动页面显示extends includes/layout.pug等
      3. 2.2.3. 用于提交git的ssh
  3. 3. 向博客中提交大文件
  4. 4. theme中的问题
    1. 4.1. Cxo
      1. 4.1.1. 不蒜子访问计数显示
      2. 4.1.2. “翻页”箭头显示错误
      3. 4.1.3. 当前查看进度条不适用
      4. 4.1.4. 目录显示错误
      5. 4.1.5. 内容在本地显示不全
  5. 5. 更新时出现SSH失效