如何使用 GitHub Pages 部署静态网站

1415 字
7 分钟
如何使用 GitHub Pages 部署静态网站

如何使用 GitHub Pages 部署静态网站#

GitHub Pages 是 GitHub 提供的免费静态网站托管服务,无需服务器、无需运维,提交代码即可自动部署。对于个人博客、项目文档、作品集展示等场景非常合适。

本文将从零开始,带你完成一个静态网站的部署。

一、GitHub Pages 简介#

核心优势:

  • 完全免费:无带宽限制、无存储费用
  • 自动部署:推送代码后自动构建上线
  • 自带 HTTPS:GitHub 自动签发 SSL 证书
  • 支持自定义域名:可绑定自己的域名
  • 全球 CDN:Fastly 提供全球加速

适用场景:

  • 个人博客(Hexo、Hugo、VitePress 等)
  • 项目文档 / 产品介绍页
  • 纯前端作品集展示
  • 静态 HTML / CSS / JS 页面

二、准备工作#

项目要求
GitHub 账号github.com 免费注册
Git本地安装 Git 用于推送代码
网站文件准备好 HTML 文件或静态网站生成器项目

安装 Git#

Terminal window
# Ubuntu / Debian
sudo apt install git -y
# macOS
brew install git
# Windows
# 下载:https://git-scm.com/download/win

配置 Git 用户名和邮箱:

Terminal window
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

三、创建仓库#

方式一:用户/组织站点(推荐)#

创建一个名为 用户名.github.io 的仓库,例如:

你的用户名.github.io

仓库名必须与你的 GitHub 用户名完全一致,且为公开仓库(Public)。

方式二:项目站点#

创建任意名称的仓库,GitHub Pages 会部署到 用户名.github.io/仓库名 路径下。

本文以用户站点为例,后续操作两种方式通用。

四、上传网站文件#

1. 克隆仓库到本地#

Terminal window
git clone https://github.com/你的用户名/你的用户名.github.io.git
cd 你的用户名.github.io

2. 放入网站文件#

在仓库根目录下创建 index.html 作为首页:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的网站</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, sans-serif;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
background: #f5f5f5;
}
.card {
background: white;
padding: 40px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
text-align: center;
}
h1 { color: #333; margin: 0 0 10px; }
p { color: #666; }
</style>
</head>
<body>
<div class="card">
<h1>部署成功!</h1>
<p>我的第一个 GitHub Pages 网站</p>
</div>
</body>
</html>

3. 提交并推送#

Terminal window
git add .
git commit -m "初始化网站"
git push origin main

五、启用 GitHub Pages#

1. 进入仓库设置#

在 GitHub 仓库页面,点击 SettingsPages

2. 配置部署源#

选项说明
Source选择 Deploy from a branch
Branch选择 main,目录选择 / (root)
点击 Save

3. 等待部署#

保存后 GitHub 会自动开始构建部署,通常 1-2 分钟内完成。构建完成后,页面顶部会显示你的网站地址:

https://你的用户名.github.io

4. 使用 GitHub Actions 部署(可选)#

对于使用静态网站生成器(如 Hexo、Hugo、VitePress)的项目,推荐使用 GitHub Actions 自动构建部署。

在仓库根目录创建 .github/workflows/deploy.yml

name: Deploy to GitHub Pages
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 如果你的项目需要构建(如 npm run build),在这里添加构建步骤
# - name: Build
# run: |
# npm install
# npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./

六、绑定自定义域名#

1. 添加 DNS 记录#

在你的域名 DNS 管理后台,添加以下记录:

类型名称
CNAMEwww你的用户名.github.io
A@185.199.108.153
A@185.199.109.153
A@185.199.110.153
A@185.199.111.153

如果使用 Cloudflare 托管 DNS,建议开启代理(橙色云朵)以获得 CDN 加速和 DDoS 防护。

2. 在仓库中配置域名#

回到 GitHub 仓库 Settings → Pages,在 Custom domain 中输入你的域名,点击 Save

GitHub 会自动在仓库根目录生成一个 CNAME 文件,同时申请 SSL 证书。

HTTPS 证书自动签发可能需要几分钟到几十分钟,耐心等待即可。勾选 Enforce HTTPS 强制使用 HTTPS。

七、常见问题排查#

1. 网站 404#

  • 确认仓库名与用户名一致(用户名.github.io
  • 确认仓库为 Public(免费用户不支持 Private 仓库的 Pages)
  • 确认 index.html 在仓库根目录
  • 检查 Settings → Pages 中 Branch 设置是否正确

2. 自定义域名无法访问#

  • 确认 DNS 记录已生效(可用 nslookup 你的域名 检测)
  • 确认仓库中存在 CNAME 文件,内容为你的域名
  • 等待 DNS 缓存刷新(最长 48 小时,通常几分钟)

3. CSS / JS 不加载#

  • 检查资源路径是否正确(相对路径 vs 绝对路径)
  • 如果使用自定义域名,确认路径中不包含仓库名
  • 打开浏览器开发者工具查看 Network 面板定位 404 资源

4. 推送后网站未更新#

  • 检查 GitHub Actions 构建状态(Actions 标签页)
  • 确认推送到了正确的分支(main)
  • 等待构建完成(Settings → Pages 页面可见构建状态)

八、进阶技巧#

使用静态网站生成器#

推荐搭配以下工具,提升内容管理效率:

工具特点适合场景
Hexo基于 Node.js,插件丰富个人博客
HugoGo 编写,构建极快文档站、博客
VitePressVue 驱动,简洁美观技术文档
JekyllGitHub Pages 原生支持轻量博客

自定义 404 页面#

在仓库根目录创建 404.html,访问不存在的页面时会自动展示:

<!DOCTYPE html>
<html>
<head><title>404 - 页面未找到</title></head>
<body>
<h1>404</h1>
<p>页面不存在,<a href="/">返回首页</a></p>
</body>
</html>

多环境部署#

利用 GitHub Actions 可以实现推送测试分支 → 部署预览站点、推送 main → 部署正式站点的流程。

九、结语#

至此,你已经成功将网站部署到了 GitHub Pages。零成本、零运维、自动 HTTPS,对于个人项目来说是最省心的托管方案。

发布于 2026-07-08 by MinCiallo

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
如何使用 GitHub Pages 部署静态网站
https://www.minciallo.top/posts/2026-7-8-1/
作者
MinCiallo
发布于
2026-07-08
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
MinCiallo
愿千年之恋,有朝一日能使万花绽放
公告
欢迎来到铭的博客!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
最近在听
加载中...
分类
标签
站点统计
文章
27
分类
3
标签
17
总字数
16,995
运行时长
0
最后活动
0 天前

目录