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 的…...

了解传输层TCP协议
目录 一、TCP协议段格式 二、TCP原理 1.确认应答 2.超时重传 3.连接管理 建立连接 断开连接 4.滑动窗口 5.流量控制 6.拥塞控制 7.延时应答 8.捎带应答 9.面向字节流 10.TCP异常情况 TCP,即Transmission Control Protocol,传输控制协议。人如…...

flask实现用户名查重,重复的用户名阻止注册,以及如何优化
在 Flask 中实现用户名查重,并阻止重复的用户名进行注册,可以使用数据库(如 SQLite、MySQL、PostgreSQL)存储用户信息,并在注册时检查用户名是否已存在。以下是实现步骤: 1. 安装 Flask 及 SQLAlchemy 确保…...

ASP.NET Core对JWT的封装
目录 JWT封装 [Authorize]的注意事项 JWT封装 NuGet 库 |Microsoft.AspNetCore.Authentication.JwtBearer 9.0.1https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBearerhttps://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBea…...

wordpressAI工具,已接入Deepseek 支持自动生成文章、生成图片、生成长尾关键词、前端AI窗口互动、批量采集等
基于关键词或现有内容生成SEO优化的文章,支持多种AI服务(如OpenAI、百度文心一言、智谱AI等),并提供定时任务、内容采集、关键词生成等功能。 核心功能 文章生成 关键词生成:根据输入的关键词生成高质量文章。 内容…...

Ollama部署 DeepSeek-R1:70B 模型的详细步骤
1. 确认环境准备 (1) 硬件要求 显存需求:70B 参数的模型需要大量显存。若使用 NVIDIA T4(16GB 显存),需多卡并行(如 8 卡)或开启量化(如 q4_0、q8_0)。内存需求:建议至…...

PAT乙级( 1009 说反话 1010 一元多项式求导)C语言版本超详细解析
1009 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#x…...

学习笔记十九:K8S生成pod过程
K8S生成pod过程 流程图具体生成过程用户提交 Pod 定义API Server 处理请求调度器分配节点(Scheduling)目标节点上的 Pod 创建网络配置状态上报与监控控制器管理(Controller Manager)就绪与服务发现 关键错误场景高级特性 流程图 具…...

Qwen2-VL:增强视觉语言模型对世界任意分辨率的感知能力
1、摘要 Qwen2-VL系列是Qwen-VL模型的高级升级版本,它重新定义了传统视觉处理中预设分辨率的方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态处理不同分辨率的图像,并将其转换为不同数量的视觉标记。这种机制使模型能够生…...

原神新版本角色牌上新 七圣召唤增添新玩法
在原神这款游戏中,5.4版本更新后七圣召唤玩法将新增2张角色牌和对应天赋牌、3张行动牌,并进行部分卡牌平衡调整,今天就给大家介绍一下。 一、角色牌【基尼奇】 1.元素战技:选一个我方角色,自身附属钩索链接并进入夜魂…...

Spring 中的 事务 隔离级别以及传播行为
1. 事务隔离级别(Isolation Level) 事务隔离级别定义了事务在并发环境下的行为,主要解决以下问题: 脏读(Dirty Read):一个事务读取了另一个未提交事务的数据。 不可重复读(Non-Re…...