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 的…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...