0%

HEXO小坑记录

QQ群:397745473

用HEXO 写BLOG 有一段时间了。踩过几个容易碰到的问题记录下来,免得过一段时间不用就忘记了。

坑1. 备份文件

HEXO 的配置文件是 _config.yml

习惯性的在改配置文件前先做个备份结果程序结果就因为这个小习惯程序崩溃了。

HEXO 在执行启动的时候把 _config.yml_bak 一起加载了,导致网站无法启动.

碰到程序崩溃可以用下面这个debug去看一下就很容易能找到问题

这个问题经过了一个很长的过程才找到,开始以为是next主题最新版本与HEXO不兼容,换主题 还换操作系统了折腾很久才发现原来是配置文件重了,差点放弃了

1
hexo server --debug -p 80

坑2. 文章的toc锚点不能正常跳

这个问题很好解决,把next主题更新到最新版本就没有问题了

坑3. 网站url名字

这个也不算是坑吧,但也在这里一起记录一下

网站的url链接非常长,看着不爽。想修改成一种简单的方式

只需要稍做修改就能实现,非常方便

打开网站主配置文件 _config.yml 对着下面的代码做下修改

1
2
3
permalink: :urlname.html
permalink_defaults:
urlname: index

编辑文件时 只需要加上下面的代码就能得到你想要的名字.html的url了

1
urlname: 你想要的名字

坑4. 被docker坑了

我的HEXO 是跑在 docker中的 结果 测试 Watchtower 自动更新的时候因为启动容器时没有把网站目录单独挂出来,导致自动更新后网站文件全没了

还好上次清理的时候没有把所有的备份文件全删除及时恢复了

这里记录一下 docker-compose.yml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.3'
services:
hexo:
#image: superpaintman/hexo
image: spurin/hexo
container_name: vksec
restart: always
ports:
- "8029:80"
- "8030:22"
volumes:
- ./data:/blog
environment:
hexo_SERVER_PORT: 8000 # 缺省的端口号
NODE_ENV: production

坑5. docker无法自动启动SSH服务

需要更新博客时我通常使用 Bitvise SSH Client 来连接docker 的ssh, 但是docker重启后不能自动启动ssh

这里记录几个关键步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#允许root认证登录
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
#允许密码认证
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config

# vim 模式修复
sed -i 's/mouse=a/mouse-=a/g' /usr/share/vim/vim80/defaults.vim

# 重启服务
/etc/init.d/ssh restart
passwd root

# 自动启动SSH服务
cat > ~/startup_run.sh << EOF
#!/bin/bash

LOGTIME=\$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >> ~/startup_run.log
service ssh start >>/root/startup_run.log
EOF

chmod +x ~/startup_run.sh

# vim /root/.bashrc 末尾增加如下语句
# startup run
if [ -f /root/startup_run.sh ]; then
/root/startup_run.sh
fi

# 现在可以直接使用 Bitvise SSH Client 连接这个docker了

坑6. 网站留言系统

国内国外的留言系统试了好几个, 没有几个好用的。有的加了直接导致网站慢得要死

直接去掉~!

哈哈留什么言呀, 别讨论了,我自己写自己的算了。真有什么事加群或者发个邮件来就好啦哈

坑7. 缓存

有时候改完配置文件如果不用 hexo cl 清理一下再生成是不会生效的.所以在上传 vercel 时就用下面这条命令来传就对了

1
cd /blog && hexo cl && hexo g && cd public && vercel --prod --confirm && cd ..

坑8. 终端走代理

有时候在下载github时会少一些文件导致出些莫名其妙的问题,这时就需要用到代理了

在linux 的终端中使用代理需要用到下面的命令

1
2
3
# export ALL_PROXY=socks5://内网代理IP地址:端口
#例如:
export ALL_PROXY=socks5://192.168.2.114:7890

QQ群:397745473

欢迎关注我的其它发布渠道