当前位置: 首页 > 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://hora .zzgtdz.cn
http://pithos .zzgtdz.cn
http://psoralen .zzgtdz.cn
http://photoinduced .zzgtdz.cn
http://flapdoor .zzgtdz.cn
http://beetlehead .zzgtdz.cn
http://english .zzgtdz.cn
http://aye .zzgtdz.cn
http://party .zzgtdz.cn
http://fictile .zzgtdz.cn
http://bisegment .zzgtdz.cn
http://scolion .zzgtdz.cn
http://later .zzgtdz.cn
http://gastronomical .zzgtdz.cn
http://aerocar .zzgtdz.cn
http://stickball .zzgtdz.cn
http://drupelet .zzgtdz.cn
http://incontinently .zzgtdz.cn
http://overnumber .zzgtdz.cn
http://hartree .zzgtdz.cn
http://maladjusted .zzgtdz.cn
http://heretic .zzgtdz.cn
http://soother .zzgtdz.cn
http://outfield .zzgtdz.cn
http://nannette .zzgtdz.cn
http://neoformation .zzgtdz.cn
http://sverdlovsk .zzgtdz.cn
http://aberdonian .zzgtdz.cn
http://gamble .zzgtdz.cn
http://disbursal .zzgtdz.cn
http://www.dtcms.com/a/293768.html

相关文章:

  • Day01_C++
  • 基于 MaxScale 实现 MySQL 读写分离
  • 使用Imgui和SDL2做的一个弹球小游戏-Bounze
  • 3.6 常见问题与调试
  • 编程语言Java——核心技术篇(二)类的高级特性
  • Semantic Kernel实现调用Kernel Memory
  • 华为云数据库 GaussDB的 nvarchar2隐式类型转换的坑
  • Python-初学openCV——图像预处理(一)
  • C++刷题 - 7.23
  • 开源 Arkts 鸿蒙应用 开发(九)通讯--tcp客户端
  • 在 Ubuntu 20.04.5 LTS 系统上安装 Docker CE 26.1.4 完整指南
  • Spring Cloud Alibaba Sentinel 基本工作原理源码阅读
  • MACOS安装配置Gradle
  • 国产数据库转向 “融合” 赛道:电科金仓的下一代形态定义之路
  • 基于Matlab传统图像处理技术的车辆车型识别与分类方法研究
  • 资本押注会成长的玩具,AI潮玩赛道开始升温
  • 华为云ELB(弹性负载均衡)持续报异常
  • 永磁同步电机控制算法--弱磁控制(负载能力最大化的定交轴)
  • 【C++】C++ 的入门语法知识1
  • 在easyui中如何设置自带的弹窗,有输入框
  • 解决Spring事务中RPC调用无法回滚的问题
  • 零基础学编程,编程从入门到精通系列教程,附:编程工具箱之时间计算构件的用法#零基础自学编程 学习计划#新手学编程 高效学习方法
  • HF83311_VB1/HF83311Q_VB1:高性能USB HiFi音频解码器固件技术解析
  • Leetcode-15. 三数之和
  • 《计算机“十万个为什么”》之 [特殊字符] 深浅拷贝 引用拷贝:内存世界的复制魔法 ✨
  • 1.1 Deep learning?pytorch ?深度学习训练出来的模型通常有效但无法解释合理性? 如何 解释?
  • 英语词汇积累Day1-10(summary)
  • Django实战:Python代码规范指南
  • 【Java】Reflection反射(代理模式)
  • 算法竞赛备赛——【图论】最小生成树