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

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.xdnf.cn/news/16080.html

相关文章:

  • 从 Shell 脚本到 Go 应用:使用 Kiro AI 助手完成 Harpoon 项目重构的完整实践
  • OMS监考系统V2版本无法启动问题解决办法
  • 单片机-----基础知识整合
  • 人工智能——Opencv图像色彩空间转换、灰度实验、图像二值化处理、仿射变化
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘jupyter’问题
  • 大模型开发
  • PDF转Word的简单方法
  • 射频信号(大宽高比)时频图目标检测anchors配置(下)
  • Github上传文件流程图
  • pytest简单使用和生成测试报告
  • Axios 响应拦截器
  • SpringBoot 使用Rabbitmq
  • EDoF-ToF: extended depth of field time-of-flight imaging解读, OE 2021
  • C语言常见的预定符号常量
  • LeetCode 热题100:160.相交链表
  • 神经网络和机器学习的一些基本概念
  • 【Node.js】使用ts-node运行ts文件时报错: TypeError: Unknown file extension “.ts“ for ts 文件
  • 电子设计大赛【摄像头循迹】讲解
  • SpringMVC快速入门之请求与响应
  • 【大模型文生图、文生音频实战Demo】基于Spring AI Alibaba和阿里百炼大模型实现文生图、文生视频
  • WebGIS 中常用公共插件
  • 1688 Agent Russia 丨俄罗斯1688跨境代采系统搭建指南
  • 前端开发 React 状态优化
  • 基于深度学习的图像分类:使用预训练模型进行迁移学习
  • 原创-基于 PHP 和 MySQL 的证书管理系统 第三版
  • Neo4j 框架 初步简单使用(基础增删改查)
  • Neo4j如何修改用户密码?
  • 【Java】Reflection反射(代理模式)
  • Redis能完全保证数据不丢失吗?
  • Spring Cloud Alibaba Sentinel 基本工作原理源码阅读