hexo博客学习记录

hexo部署+GitHub绑定域名+域名绑定后访问页面404解决

在GitHub上部署hexo博客并实现同步

本地部署

nodejs

通过官网下载LTS的对应版本的安装包,一直点确认即可

https://nodejs.org/en/download/

image-20230705153036113

git

通过官网安装git

官网地址:https://git-scm.com/

一直点确认即可

之后认证指定用户名以及邮箱

hexo

在终端中安装hexo,安装命令:

1
npm install hexo -g

安装hexo的依赖,安装命令:

1
npm install `--`save hexo-deployer-git

git配置ssh

为了实现免密 github与本地博客的同步

先生成ssh key

1
ssh-keygen -t rsa -C "邮件地址"

备注:这里的邮件地址是github账号绑定的邮件地址

之后便在”C:\Users\86131.ssh\id_rsa.pub”

可找到id_rsa.pub用记事本打开复制里边的内容

在GitHub上打开Settingz之后点击SSH and GPG keys

然后点击New SSH key将从id_rsa.pu中复制的内容粘贴进去,并随意起个名字在title里并 Add SSH key即可

image-20230705154047862

测试配置是否成功,命令:

1
ssh -T git@github.com

image-20230705154517394

新建博客

hexo常见命令:

1
2
3
4
5
6
7
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录,可简写为 hexo g
hexo server #开启预览访问端口,可简写为hexo s
hexo deploy #部署到GitHub,可简写为hexo d
hexo help # 查看帮助
hexo version #查看Hexo的版本

自己随意指定一个文件夹后,在终端进入这个文件夹之后使用以下命令初始化

1
hexo init

再使用以下命令,来生成静态界面:

1
hexo g

便可以使用以下命令在本地预览网页:

1
hexo s

image-20230705155317320

浏览器中输入得到的网址便可以预览画面了

github上准备

GitHub创建名为用户名.github.io的库

img

image-20230705155559905

之后,在本地中你指定初始化的文件夹中找到_config.yml

image-20230705155810330

打开后在deploy中修改成

1
2
3
4
5
6
7
deploy:

type: git

repository: git@github.com:GitHub用户名/GitHub用户名.github.io.git

branch: master#如果你新建的GitHub项目中默认分支是master就不需要动,如果是其他名字就需改为相同名字,比如默认分支是mian,这里就需要改为mian

image-20230705160317135

之后便可以通过以下命令将博客部署在GitHub上了

1
2
3
hexo clean
hexo g
hexo d

等一会就可以通过,用户名.github.io访问博客了

绑定域名

默认已经有域名了(若没有也可以在阿里云租,注册一个icu域名很便宜我的一年8块钱)

在阿里云域名模块中,选择域名点击解析

image-20230705161208363

点击添加记录

image-20230705161306176

选择CNAME

image-20230705161502986

按如下方式填写:

image-20230705161736264

点击确认

之后来到GitHub,选择你创建的博客项目,进去后点击settings

image-20230705161843145

点击pages

image-20230705161937602

按如下(前面在阿里云填写的 主机记录值+你的域名)填写并点击save

image-20230705162028144

之后就可以根据,主机记录值+你的域名访问你的博客了,请注意绑定域名的步骤还没完,请继续往下看

github 404试错记录

问题

绑定域名之后无论从用户名.github.io还是从域名访问网页的时候都会出现404

解析

因为在GitHub上绑定域名

image-20230705151925109

之后github会自动创建CNAME文件内容为绑定的域名:

image-20230705151729003

所以当我们使用以下命令将hexo部署在网页上之后就会覆盖掉这个文件

1
2
3
hexo clean
hexo g
hexo d

解决方案

在本地的source文件下创建CNAME文件并将GitHub的CNAME文件内的内容粘贴进去后再重新执行以下操作就可以了

1
2
3
hexo clean
hexo g
hexo d

将jupter转化为md文件

在文件目录执行该命令即可得到转化成功的md文件

1
jupyter nbconvert --to markdown  filename.ipynb