GitHub Pages简介
First Post:
Last Update:
Word Count:
Read Time:
Page View: loading...
Last Update:
Word Count:
814
Read Time:
3 min
Page View: loading...
GitHub Pages 是 GitHub 提供的免费静态网站托管服务,允许用户通过 GitHub 仓库直接发布个人博客、项目文档或静态网站。以下是其核心功能的详细解析:
一、核心特性
免费托管
- 支持自定义域名(免费 SSL 证书)。
- 提供
username.github.io
默认域名。 - 存储空间无限制(单仓库建议 ≤1GB)。
静态内容支持
- 直接托管 HTML/CSS/JS 文件。
- 兼容 Jekyll、Hexo 等静态站点生成器。
- 支持 Markdown 渲染(自动转换为 HTML)。
自动化部署
- 提交代码到指定分支(如
main
/gh-pages
)自动更新网站。 - 可与 GitHub Actions 集成实现高级 CI/CD 流程。
- 提交代码到指定分支(如
访问控制
- 公开仓库对应公开网站。
- 私有仓库需付费订阅 GitHub Pro 或 Team 方可启用 Pages。
二、部署方式
1. 基础部署(手动上传)
- 步骤:
- 创建仓库:命名格式
<username>.github.io
(个人主页)或任意名称(项目主页)。 - 上传文件:将静态文件(如
index.html
)推送到默认分支(main
)。 - 访问网站:
https://<username>.github.io
。
- 创建仓库:命名格式
2. 使用 Jekyll(GitHub 原生支持)
- 流程:
1
2
3
4
5# 本地安装 Jekyll
gem install jekyll bundler
jekyll new my-site
cd my-site
bundle exec jekyll serve - 配置:
- 在
_config.yml
中自定义元数据。 - 支持 Liquid 模板和插件(需适配 GitHub 安全策略)。
- 在
3. 静态生成器集成(如 Hexo)
- 步骤:
- 初始化项目:
1
2
3npm install hexo-cli -g
hexo init my-blog
cd my-blog - 部署配置(
_config.yml
):1
2
3
4deploy:
type: git
repo: https://github.com/username/username.github.io.git
branch: main - 生成并推送:
1
hexo clean && hexo g && hexo d
- 初始化项目:
三、自定义域名配置
域名绑定
- 在仓库设置 → Pages → Custom domain 输入域名(如
example.com
)。 - 添加 CNAME 文件到仓库根目录:
1
example.com
- 在仓库设置 → Pages → Custom domain 输入域名(如
DNS 解析
- A 记录:指向 GitHub IP(如
185.199.108.153
)。 - CNAME 记录:指向
<username>.github.io
。
- A 记录:指向 GitHub IP(如
HTTPS 强制启用
- 启用 GitHub Pages 的 Enforce HTTPS 选项。
- 证书由 Let’s Encrypt 自动签发(更新周期 24 小时)。
四、适用场景
场景 | 技术方案 | 优势 |
---|---|---|
个人博客 | Jekyll/Hexo + Markdown | 内容版本控制,写作流高效 |
项目文档 | VuePress/Docusaurus | 自动化文档生成,API 集成 |
作品集展示 | 原生 HTML/CSS + Bootstrap | 轻量快速,定制灵活 |
开源项目主页 | GitHub Pages + Actions | 与代码仓库无缝集成 |
五、常见问题与解决
404 错误
- 确认仓库命名和分支正确。
- 检查
index.html
是否存在。
Jekyll 构建失败
- 禁用不兼容插件(如
jekyll-paginate
)。 - 验证
_config.yml
语法。
- 禁用不兼容插件(如
HTTPS 证书未生效
- 等待最长 24 小时自动更新。
- 手动清除浏览器缓存。
访问速度优化
- 使用 CDN(如 Cloudflare)。
- 压缩图片与静态资源。
六、高级技巧
GitHub Actions 自动化
创建.github/workflows/deploy.yml
实现自动构建:1
2
3
4
5
6
7
8
9
10
11
12
13
14name: Deploy
on:
push:
branches: [main]
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install && npm run build
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public多环境部署
通过分支管理开发/生产环境(如dev
分支预览,main
分支正式发布)。
七、资源推荐
掌握以上内容,即可高效利用 GitHub Pages 构建专业级静态站点。