阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一)

前言

  1. 博客搭建过程遇到任何问题,优先在本页面搜索,检查是否已经有该配置教程。
  2. 遇到问题可以优先在文章评论区留言,注意留言时请填写正确的邮箱以确保能收到站长的回复。
  3. 实在解决不了的问题可添加博主 Wechat ,添加好友时请备注自己的姓名+专业,如 张三 计算机科学与技术。

初始化 Hexo 项目

  1. 在目标路径(我这里选的路径为【G:/hexo-blog】)打开cmd命令窗口,执行hexo init初始化项目。
    1
    hexo init blog-demo(项目名)
  2. 进入blog-demo ,输入npm i安装相关依赖。
    1
    2
    cd blog-demo  //进入blog-demo文件夹
    npm i
  3. 初始化项目后,blog-demo有如下结构:
    【node_modules】:依赖包
    【scaffolds】:生成文章的一些模板
    【source】:用来存放你的文章
    【themes】:主题
    【.npmignore】:发布时忽略的文件(可忽略)
    【_config.landscape.yml】:主题的配置文件
    【_config.yml】:博客的配置文件
    【package.json】:项目名称、描述、版本、运行和开发等信息
  4. 输入hexo server或者hexo s
  5. 打开浏览器,输入地址:http://localhost:4000/ ,看到下面的效果,说明你的博客已经构建成功了。

将静态博客挂载到 GitHub Pages

上一篇文章中,我们已经完成了对 GitHub 账户的注册以及 Github Pages 的创建,并且为 GitHub 配置了 SSH key, 我们将博客部署到 GitHub Pages 上即可。

安装 hexo-deployer-git

1
npm install hexo-deployer-git --save

修改 _config.yml 文件

blog-demo目录下的_config.yml,就是整个Hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述

修改最后一行的配置,将repository修改为你自己的github项目地址即可。

请检查自己的默认分支是不是master

1
2
3
4
deploy:
type: git
repository: git@github.com:tzy13755126023/tzy13755126023.github.io.git
branch: master

部署项目到 GitHub

修改好配置后,运行如下命令,将代码部署到 GitHub。

1
2
3
hexo clean
hexo generate
hexo deploy
  • hexo clean:删除之前生成的文件,若未生成过静态文件,可忽略此命令。
  • hexo generate:生成静态文章,可以用hexo g缩写
  • hexo deploy:部署文章,可以用hexo d缩写

注意:deploy时可能要你输入 username 和 password。

如果出现Deploy done,则说明部署成功了。

打开浏览器访问:https://tzy13755126023.github.io ,这时候我们就可以看到博客内容了。

如果出现了本地 css 样式正常,部署到 github 上样式错乱,请移步 Hexo + Butterfly 一些常见问题 一文,其中提到过关于 本地样式正常,部署后就样式错乱的问题。

设置个人域名

现在你的个人网站的地址是 yourname.github.io。如果觉得不够定制化,可以购买一个专属域名。

这一步不是必要的,如果目前还不想买域名可以先跳过。

腾讯云、阿里云等都是不错的选择,博主选择的阿里云的.com。购买域名后,实名认证进入阿里云控制台,点云解析进去,找到你刚买的域名,点进去添加两条解析记录,记录值 请填写<用户名>.github.io,如下图所示:

以我的域名fe32.top为例,进行如下说明:

主机记录 解释
www 解析后的域名为 www.fe32.top
@ 直接解析主域名 yafine-blog.cn
* 泛解析,匹配其他所有域名 *.yafine-blog.cn
mail 将域名解析为 mail.yafine-blog.cn,通常用于解析邮箱服务器
二级域名 如 abc.yafine-blog.cn,填写 abc
手机网站 如 m.yafine-blog.cn,填写 m
显性URL 不支持泛解析(泛解析:将所有子域名解析到同一地址)

将域名指向云服务器,请选择「A」; 将域名指向另一个域名,请选择「CNAME」; 建立邮箱请选择「MX」,根据邮箱服务商提供的 MX 记录填写。

记录类型 解释
A 用来指定域名的 IPv4 地址(如 8.8.8.8),如果需要将域名指向一个 IP 地址,就需要添加 A 记录。
CNAME 如果需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录。
MX 如果需要设置邮箱,让邮箱能收到邮件,就需要添加 MX 记录。
TXT 在这里可以填写任何东西,长度限制 255。绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件)
NS 域名服务器记录,如果需要将子域名交给其他 DNS 服务商解析,就需要添加 NS 记录。
AAAA 用来指定主机名(或域名)对应的 IPv6 地址(例如:ff06:0:0:0:0:0:0:c3)记录。
SRV 记录了哪台计算机提供了哪个服务。格式为:服务的名字、点、协议的类型,例如:_xmpp-server_tcp。
显性 URL 从一个地址 301 重定向到另一个地址的时候,就需要添加显性 URL 记录(注:DNSPod 目前只支持 301 重定向)。
隐性 URL 类似于显性 URL,区别在于隐性 URL 不会改变地址栏的域名。

这时候你的项目根目录应该会出现一个名为CNAME的文件。如果没有的话,打开博客/source目录,我的是G:/hexo-blog/blog-demo/source,新建CNAME文件,注意没有后缀。然后在里面写上你的域名(例如:fe32.top),保存。最后运行hexo ghexo d上传到github。这样到最后当你在地址栏输入xxx.github.io时,才会自动跳转到你的域名。

打开你的github博客项目,点击settings,点击Pages,拉到下面Custom domain处,填上你自己的域名 ,保存。

部署成功后,再打开你的浏览器,输入你自己的专属域名,即可看到你的博客网站!