GitHub Pages + Jekyll 博客搭建指南(静态网站)
目录
- 🚀 静态网站及其生成工具指南
- 🌍 什么是静态网站?
- 📌 静态网站的优势
- ⚖️ 静态网站 VS 动态网站
- 🚀 常见的静态网站生成器对比
- 🛠️ 使用 GitHub Pages + Jekyll 搭建个人博客
- 📌 1. 创建 GitHub 仓库
- 📌 2. 安装 Jekyll(本地环境搭建)
- 📌 安装 Ruby 和 Bundler
- 📌 3. 创建 Jekyll 博客
- 📌 4. 上传博客到 GitHub
- 📌 5. 启用 GitHub Pages
- 🎯 总结
🚀 静态网站及其生成工具指南
🌍 什么是静态网站?
静态网站(Static Website)指 所有网页内容(HTML、CSS、JavaScript、图片等)在服务器上是固定的,不需要服务器动态处理或数据库支持,用户访问时,服务器直接返回这些文件给浏览器进行展示。
📌 静态网站的优势
- 加载速度快:服务器直接返回静态文件,无需动态渲染。
- 安全性高:无数据库或后台逻辑,减少攻击风险。
- 部署简便:可托管在 GitHub Pages、Vercel、Netlify 等平台。
- 低维护成本:不需要服务器管理,适合长期运行。
⚖️ 静态网站 VS 动态网站
特点 | 静态网站 | 动态网站 |
---|---|---|
内容更新 | 需手动修改代码 | 由数据库或后端代码动态生成 |
交互能力 | 仅支持前端交互 | 支持后端处理和数据库交互 |
访问速度 | 快(直接返回页面) | 慢(服务器计算请求) |
安全性 | 高(无服务器端漏洞) | 低(可能有 SQL 注入、XSS 攻击) |
适用场景 | 博客、文档、企业官网 | 论坛、电商、社交平台 |
🚀 常见的静态网站生成器对比
生成器 | 语言 | 适用场景 | 特点 |
---|---|---|---|
Jekyll | Ruby | 博客、GitHub Pages | GitHub Pages 官方支持,适合个人博客 |
Hugo | Go | 文档、博客、官网 | 速度极快,单个二进制文件,无需安装依赖 |
Hexo | Node.js | 技术博客 | 适合程序员,支持丰富插件和主题 |
Gatsby | React | 现代网站、数据驱动 | 基于 React,支持 GraphQL,适用于动态内容 |
VuePress | Vue.js | 文档网站 | Vue 驱动,可作为技术文档平台 |
🛠️ 使用 GitHub Pages + Jekyll 搭建个人博客
📌 1. 创建 GitHub 仓库
-
访问 GitHub 并 登录。
-
创建一个新的仓库,命名格式:
yourusername.github.io
(替换
yourusername
为你的 GitHub 用户名) -
选择 Public(公开),点击 Create repository 创建仓库。
📌 2. 安装 Jekyll(本地环境搭建)
Jekyll 需要 Ruby 运行环境,建议使用最新版本的 Ruby。
📌 安装 Ruby 和 Bundler
-
Windows:
-
安装 RubyInstaller
-
Windows + R 输入 cmd ,运行以下命令检查安装:
ruby -v gem -v
若看到 Ruby 和 Gem 的版本号,则说明安装成功。
-
-
macOS:
# 1. 在 Mac 上,推荐使用 Homebrew 安装 Ruby: brew install ruby# 2. 安装后,更新环境变量: echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc source ~/.zshrc# 3. 验证安装: ruby -v gem -v
-
Linux:
-
Ubuntu/Debian 系统
sudo apt update sudo apt install ruby-full build-essential zlib1g-dev ruby -v gem -v
-
CentOS 系统
sudo yum install ruby ruby -v gem -v
-
-
安装 Bundler(Ruby 依赖管理器)
# 安装命令 gem install bundler# 安装验证 bundler -v
[!NOTE]
注:
gem install jekyll bundler
这条命令用于全局安装 Jekyll 和 Bundler,它不依赖于当前所在的目录。这意味着你可以在任何目录下打开 命令提示符(cmd) 后执行该命令,只需满足以下条件:-
Ruby 已安装:确保你已经在 Windows 系统上正确安装了 Ruby(推荐使用 RubyInstaller)
-
PATH 环境变量已配置:安装 Ruby 后,请确认 Ruby 的
bin
目录已添加到系统的 PATH 环境变量中,这样你就可以在任意目录下使用gem
命令。
-
📌 3. 创建 Jekyll 博客
在cmd
终端运行:
# 1.安装 Jekyll 和必要依赖:
gem install jekyll bundler# 2.初始化一个新的 Jekyll 项目:
jekyll new my-blog# 3.进入博客目录并安装依赖:
cd my-blog
bundle install# 4.启动本地服务器
bundle exec jekyll serve# 5.打开浏览器访问 http://127.0.0.1:4000 预览博客
📌 4. 上传博客到 GitHub
-
进入博客目录:
cd my-blog
-
初始化 Git 仓库: 在终端中,确保进入你的博客目录并执行以下命令:
# 在当前目录下初始化一个本地 Git 仓库 git init# 将 “当前目录及其子目录中的所有文件” 添加到 Git 的暂存区(Staging Area) git add .# 将暂存区中的文件提交到本地的 Git 仓库,并附加一条提交说明(commit message) git commit -m "Initial commit"
-
关联 GitHub 远程仓库并推送:
git remote add origin https://github.com/yourusername/yourusername.github.io.git git branch -M main
-
将代码推送到 GitHub:
git push -u origin main
📌 5. 启用 GitHub Pages
-
进入 GitHub 仓库 Settings → Pages。
-
在 Branch 选择
main
分支→ Folder:/ (root)
,点击 Save。 -
访问:
https://yourusername.github.io
你的博客已上线!🎉
🎯 总结
- Jekyll:适合 GitHub Pages,简洁稳定。
- Hugo:最快,适合大规模博客/文档。
- Hexo:Node.js + 主题丰富,适合技术博客。
- Gatsby:React + GraphQL,适合现代网站。
- VuePress:Vue.js + 文档站点最佳。
相关文章:

GitHub Pages + Jekyll 博客搭建指南(静态网站)
目录 🚀 静态网站及其生成工具指南🌍 什么是静态网站?📌 静态网站的优势⚖️ 静态网站 VS 动态网站 🚀 常见的静态网站生成器对比🛠️ 使用 GitHub Pages Jekyll 搭建个人博客📌 1. 创建 GitHu…...

21.[前端开发]Day21-HTML5新增内容-CSS函数-BFC-媒体查询
王者荣耀-网页缩小的问题处理 为什么会产生这个问题?怎么去解决 可以给body设置最小宽度 1 HTML5新增元素 HTML5语义化元素 HTML5其他新增元素 2 Video、Audio元素 HTML5新增元素 - video video支持的视频格式 video的兼容性写法 HTML5新增元素 - audio audio…...
C++SLT(五)——list
目录 一、list的介绍二、list的使用list的定义方式 三、list的插入和删除push_back和pop_backpush_front和pop_frontinserterase 四、list的迭代器使用五、list的元素获取六、list的大小控制七、list的操作函数sort和reversemergeremoveremove_ifuniqueassignswap 一、list的介…...

网络安全ITP是什么 网络安全产品ips
DS/IPS都是专门针对计算机病毒和黑客入侵而设计的网络安全设备 1、含义不同 IDS :入侵检测系统(发现非法入侵只能报警不能自己过滤) 做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统…...

评估大模型(LLM)摘要生成能力:方法、挑战与策略
大语言模型(LLMs)有着强大的摘要生成能力,为信息快速提取和处理提供了便利。从新闻文章的快速概览到学术文献的要点提炼,LLMs 生成的摘要广泛应用于各个场景。然而,准确评估这些摘要的质量却颇具挑战。如何确定一个摘要…...

《PYTHON语言程序设计》(2018版)1.20修改这道题,利用类的方式(二) 接近成功....(上)
在类的外面建立4个顶点 turtle.speed(20)ran1_x1 random.randint(-69, -60) ran1_y1 random.randint(-5, 10) ran1_x2 random.randint(-69, -60) ran1_y2 random.randint(75, 80) ran1_x3 random.randint(79, 90) ran1_y3 random.randint(70, 85) ran1_x4 random.randin…...

USB子系统学习(四)使用libusb读取鼠标数据
文章目录 1、声明2、HID协议2.1、描述符2.2、鼠标数据格式 3、应用程序4、编译应用程序5、测试 1、声明 本文是在学习韦东山《驱动大全》USB子系统时,为梳理知识点和自己回看而记录,全部内容高度复制粘贴。 韦老师的《驱动大全》:商品详情 …...
【产品小白】用户调研的需求是否都采纳?
在用户调研中,并非所有需求都应被直接采纳,而应通过系统分析转化为符合产品战略的有效决策。以下是关键思考框架: 1. 用户需求 ≠ 产品需求 矛盾性:用户个体需求可能相互冲突(如A功能的去留),需…...

软件测试就业
文章目录 2.6 初识一、软件测试理论二、软件的生产过程三、软件测试概述四、软件测试目的五、软件开发与软件测试的区别?六、学习内容 2.7 理解一、软件测试的定义二、软件测试的生命周期三、软件测试的原则四、软件测试分类五、软件的开发与测试模型1.软件开发模型…...

qt部分核心机制
作业 1> 手动将登录项目实现,不要使用拖拽编程 并且,当点击登录按钮时,后台会判断账号和密码是否相等,如果相等给出登录成功的提示,并且关闭当前界面,发射一个跳转信号,如果登录失败&#…...

【RocketMQ】RocketMq之ConsumeQueue深入研究
目录 一:RocketMq 整体文件存储介绍 二:ConsumeQueue 的文件结构 三:ConsumeQueue 写入和查询流程 一:RocketMq 整体文件存储介绍 存储⽂件主要分为三个部分: CommitLog:存储消息的元数据。所有消息都会…...

如今物联网的快速发展对hmi的更新有哪些积极影响
一、功能更加丰富 物联网的快速发展使得 HMI(人机界面)能够连接更多的设备和系统,从而实现更加丰富的功能。例如,通过与传感器网络的连接,HMI 可以实时显示设备的运行状态、环境参数等信息,为用户提供更加…...
linux 性能60秒分析
linux 60秒分析 需要运行的工具是 1、uptime 2、dmesg | tail 3、vmstat 1 4、mpstat -P ALL 1 5、pidstat 1 6、iostat -xz 1 7、free -m 8、sar -n DEV 1 9、sar -n TCP,ETCP 1 10、topuptime 快速检查平均负载 [rootaaaaaa ~]# uptime15:17:20 up 3 days, 14 min, 7 us…...

Redisson全面解析:从使用方法到工作原理的深度探索
文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…...

neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.
目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…...

51单片机之引脚图(详解)
8051单片机引脚分类与功能笔记 1. 电源引脚 VCC(第40脚):接入5V电源,为单片机提供工作电压。GND(第20脚):接地端,确保电路的电位参考点。 2.时钟引脚 XTAL1(第19脚&a…...
Hangfire.NET:.NET任务调度
引言:为何选择 Hangfire? 在开发.NET 应用程序时,我们常常会遇到这样的场景:应用程序需要定期发送报告,像财务报表,每日业务数据汇总报告等,这些报告需要定时生成并发送给相关人员;…...
深入解析:React 事件处理的秘密与高效实践
在 React 中,事件处理是构建交互式应用的核心。本文将带你深入探索 React 事件处理的机制、最佳实践以及如何避免常见陷阱,助你写出更高效、更健壮的代码。 1. React 事件处理的独特之处 合成事件(SyntheticEvent) React 使用合…...

开源像素字体,可用于独立游戏开发
方舟像素字体 / Ark Pixel Font 开源的泛中日韩像素字体,使用 SIL 开放字体许可证 第1.1版(SIL Open Font License 1.1)授权。 支持 10、12 和 16 像素尺寸。 支持语言特殊字形:中文-中国大陆、中文-香港特别行政区、中文-台湾…...

【论文阅读】Comment on the Security of “VOSA“
Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...