技术博客搭建完整指南:Hexo + NexT + Nginx 实战
摘要
本文记录了使用 Hexo + NexT 主题 + Nginx 搭建个人技术博客的完整过程,涵盖技术栈选型、原理分析、搭建步骤、文件结构以及常见问题的解决方案。
一、技术栈选型
1.1 核心框架
| 技术 | 版本 | 用途 |
|---|---|---|
| Hexo | 最新 | 静态博客生成器 |
| NexT | 8.27.0 | Hexo 主题 |
| Node.js | 18+ | Hexo 运行环境 |
| Nginx | 系统包 | Web 服务器 |
1.2 选型理由
为什么选择 Hexo?
- 纯静态生成,访问速度快
- Markdown 写作,体验好
- 主题丰富,生态成熟
- 部署简单,支持多种部署方式
为什么选择 NexT?
- 简洁美观,专注于阅读体验
- 配置灵活,功能丰富
- 中文文档完善
- 社区活跃,持续维护
为什么选择 Nginx?
- 性能高效,资源占用低
- 配置灵活,支持反向代理
- 静态文件托管效果好
二、技术原理
2.1 Hexo 工作原理
1 | ┌─────────────────────────────────────────────────────────┐ |
核心流程:
- 解析:Hexo 读取
source/_posts/下的 Markdown 文件 - 处理:使用主题模板渲染,生成 HTML
- 输出:静态文件输出到
public/目录 - 部署:将
public/部署到服务器
2.2 NexT 主题原理
NexT 是 Hexo 最流行的主题之一,采用 Nunjucks 模板引擎:
1 | themes/next/ |
2.3 Front Matter 机制
Front Matter 是 Markdown 文件头部的 YAML 块:
1 |
|
关键字段:
title:文章标题date:发布日期tags:标签(数组)description:摘要(用于首页显示)
2.4 <!-- more --> 截断符
Hexo 使用 <!-- more --> 标记控制首页文章预览位置:
1 | 正文第一段... |
显示规则:
- 首页:显示
<!-- more -->之前的内容 - 文章页:显示完整正文
三、搭建过程
3.1 环境准备
1 | # 1. 安装 Node.js(已在服务器预装) |
3.2 初始化博客
1 | # 1. 创建博客目录 |
3.3 安装主题
1 | # 方式一:克隆 NexT 主题 |
3.4 配置博客
站点配置(_config.yml)
1 | # Site |
主题配置(themes/next/_config.yml)
1 | # 菜单 |
3.5 部署流程
1 | # 简化的部署命令 |
或者部署到 Gitee Pages:
1 | npx hexo deploy |
3.6 Nginx 配置
1 | # 1. 启动 Nginx |
四、文件结构
4.1 完整目录结构
1 | /root/my-blog/ |
4.2 文章文件格式
1 |
|
五、常见问题与解决方案
5.1 摘要显示问题
问题:首页显示全文而非摘要
解决:
- 在文章中添加
description字段 - 在摘要结束位置添加
<!-- more -->标记 - 主题配置设置
excerpt_description: true
1 | # 主题配置 |
问题:文章页显示摘要
解决:
修改模板文件 themes/next/layout/_macro/post.njk,找到:
1 | {%- if post.description and (not theme.excerpt_description or not is_index) %} |
修改为:
1 | {%- if post.description and not is_index %} |
5.2 标签不显示问题
问题:文章页不显示标签
解决:
- 确保主题配置启用:
1 | post_meta: |
- 检查模板是否正确渲染
5.3 Git 推送失败
解决:
- 配置 Git 用户信息:
1 | git config user.name "yourname" |
- 使用 Gitee Token 或 SSH 密钥认证
5.4 Nginx 无法访问
解决:
- 检查 Nginx 状态:
systemctl status nginx - 检查防火墙:
firewall-cmd --list-ports - 检查文件权限:
chmod -R 755 /var/www/html/
5.5 样式问题
问题:CSS/JS 未加载
解决:
- 清理缓存:
hexo clean - 重新生成:
hexo g - 检查
public/目录是否完整
六、显示规则(已固定)
| 页面 | 摘要(description) | 标签 |
|---|---|---|
| 首页 | ✅ 显示 | - |
| 文章页 | ❌ 不显示 | ✅ 显示 |
七、常用命令
1 | # 创建新文章 |
八、总结
本文详细记录了 Hexo + NexT + Nginx 博客搭建的全过程,包括:
- 技术栈选型及理由
- 核心工作原理
- 完整搭建步骤
- 文件结构说明
- 常见问题解决方案
通过这套方案,可以快速搭建一个高性能、易维护的个人技术博客。