当前位置: 首页 > news >正文

Hexo - 免费搭建个人博客03 - 将个人博客托管到github,个人博客公开给大家访问

导言


我的博客:https://q164129345.github.io/

既然要将个人博客托管到github,首先我们肯定要有一个github账户。另外也需要在电脑上安装另外一个著名的代码管理工具git。

一、创建github仓库


在这里插入图片描述
在这里插入图片描述

二、在Hexo设置部署的内容


在这里插入图片描述

# Deployment## Docs: https://hexo.io/docs/one-command-deployment
deploy:type: 'git'repository: git@github.com:q164129345/q164129345.github.io.gitbranch: main

如上所示,在文件_config.yml的最下面填入部署的内容。

三、安装部署github的依赖


在这里插入图片描述

npm install hexo-deployer-git --save

四、部署到github


在这里插入图片描述
在这里插入图片描述

hexo clean && hexo generate && hexo deploy

五、github


在这里插入图片描述
在这里插入图片描述
如上所示,可以通过网址:q164129345.github.io访问个人博客了!

六、细节补充


6.1、部署到github的仅仅只是public文件夹的内容

在这里插入图片描述
如上所示,Hexo工程里只有public的内容部署到github仓库。为什么?

  1. Hexo 是一个静态站点生成器 (Static Site Generator, SSG)。

    • 它的核心任务是:接收你的 Markdown 源文件、主题配置、布局文件等(这些通常在 source/themes/_config.yml等目录中),通过其内部的渲染引擎和插件处理后,生成纯粹的 HTML、CSS、JavaScript 和图片等静态文件。
    • 这些生成的静态文件,就是放在 public/ 目录下的内容。
  2. GitHub Pages 是一个静态网站托管服务。

    • GitHub Pages 的设计初衷就是为了托管和提供纯静态网站的访问。它不具备运行服务器端脚本(如 Node.js、PHP、Python)、处理数据库连接的能力。
    • 它只能直接提供浏览器能够解析和渲染的静态资源。

因此,当 Hexo 执行 hexo generate 命令时,它会把所有必要的文件都处理好并输出到 public/ 文件夹。接着,当你执行 hexo deploy 命令时,它实际上就是把这个 public/ 文件夹的内容推送到你的 GitHub Pages 仓库(通常是 master 或 main 分支,或者是 gh-pages 分支),供 GitHub Pages 服务直接托管和访问。

6.2、只部署public文件夹的内容到github,有什么好处?

这种设计模式带来了多方面的好处:

  1. 职责分离 (Separation of Concerns)
    • Hexo 的职责: 负责“构建”或“编译”你的网站。它将你的原始 Markdown、模板等转换为可部署的静态文件。
    • GitHub Pages 的职责: 负责“托管”和“分发”这些已经构建好的静态文件。
    • 两者各司其职,互不干涉,使得整个流程清晰高效。GitHub Pages 不需要知道你的网站是如何生成的,它只关心最终的 HTML 文件。
  2. 效率与性能:
    • 部署效率: 只需要上传最终的、精简过的静态文件。你的源代码(Markdown、主题文件、Node.js 依赖等)通常会比生成的 public 文件夹大得多,上传整个项目会耗费更多时间和带宽。
    • 网站加载速度: GitHub Pages 直接提供静态文件,浏览器可以直接解析渲染,无需服务器端处理时间,大大提高了网站的访问速度。
  3. 安全性
    • 纯静态网站是最安全的网站类型之一。没有服务器端代码可以被攻击者利用,没有数据库可以被注入,极大地降低了安全风险。
    • 你不会不小心将敏感的配置信息(例如数据库密码、API 密钥等,即使 Hexo 通常没有这些)部署到公共可访问的服务器上。
  4. 版本控制的最佳实践
    • 源代码仓库: 你应该将你的 Hexo 项目的完整源代码(包括 source/themes/_config.ymlpackage.json 等)存放在一个单独的 Git 仓库中(例如 my-blog-source)。这个仓库记录了你网站的开发过程。
    • 部署仓库: GitHub Pages 仓库(例如 yourusername.github.io)只包含 public 文件夹的内容。这使得这个仓库非常“干净”,只包含最终的、可直接访问的网站内容。
    • 这种分离允许你独立地管理网站的开发和部署。你可以回溯到任何一个版本的源代码,然后重新生成和部署。
  5. CDN友好
    • 静态文件非常适合通过内容分发网络(CDN)进行全球缓存和分发,进一步提高访问速度和稳定性。GitHub Pages 本身就利用了 CDN。

总结来说,Hexo 配合 GitHub Pages 的这种设计,是一种非常成熟和高效的静态网站开发与部署模式。它将复杂的构建过程与简单的托管服务解耦,使得开发者能够专注于内容创作,同时享受到高性能、高安全性和免费的托管服务。

http://www.lryc.cn/news/597397.html

相关文章:

  • 深度相机---像素转物理尺寸
  • Paimon的部分更新以及DeleteVector实现
  • 篇四 tcp,udp客户端服务器编程模型
  • MYSQL 笔记3
  • 实验室信息管理系统的设计与实现/实验室管理系统
  • lwIP学习记录5——裸机lwIP工程学习后的总结
  • 【bug】websocket协议不兼容导致的一个奇怪问题
  • Linux 723 磁盘配额 限制用户写入 quota;snap快照原理
  • Linux 环境下安装 MySQL 8.0.34 二进制 详细教程 附docker+k8s启动
  • VU2 学习笔记4 计算属性、监视属性
  • 北京互联网公司面试题精华解析
  • 计算机网络学习----Https协议
  • 直接偏好优化(DPO):原理、演进与大模型对齐新范式
  • python-82-基于ORM操作数据库(一)简单模型CRUD
  • UniappDay01
  • JavaWeb笔记12
  • MySQL深度理解-深入理解MySQL索引底层数据结构与算法
  • 容联云携手信通院,启动“智能体服务生态共创计划”
  • 华为云ELB(弹性负载均衡)持续报异常
  • 2025年Zigbee技术白皮书:全球物联网无线通信的关键创新
  • HF86611_VC1/HF86611Q_VC1:多通道USB HiFi音频解码器固件技术解析
  • 【自动化运维神器Ansible】深入解析Ansible Host-Pattern:精准控制目标主机的艺术
  • .Net core 部署到IIS出现500.19Internal Server Error 解决方法
  • Ubuntu系统下FFmpeg源码编译安装
  • 内网穿透技术深析:从原理到工具应用的全方位解读,无公网IP本地服务器外网访问实操
  • IGM弧焊机器人气体节约
  • 【数据结构】哈希——位图与布隆过滤器
  • 彩色转灰度的核心逻辑:三种经典方法及原理对比
  • zabbix监控MySQL数据库
  • 企业选择将服务器放在IDC机房托管的优势