codecamp

使用 Jekyll 在本地测试 GitHub Pages 站点

您可以在本地构建 GitHub Pages 站点,以预览和测试对站点的更改。

GitHub Pages 适用于具有 GitHub Free 和组织的 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。 更多信息请参阅“GitHub 的产品”。

任何拥有仓库读取权限的人都可以在本地测试 GitHub Pages 站点。

基本要求

在使用 Jekyll 测试站点之前,您必须:

我们建议使用 Bundler 安装和运行 Jekyll。 Bundler 可管理 Ruby gem 依赖项,减少 Jekyll 构建错误和阻止环境相关的漏洞。 要安装 Bundler:

  1. 安装 Ruby。 更多信息请参阅 Ruby 文档中的“安装 Ruby”。
  2. 安装 Bundler。 更多信息请参阅“Bundler”。

本地构建网站

  1. 打开 Git Bash。

  1. 导航到站点的发布来源。 有关发布源的更多信息,请参阅“关于 GitHub Pages”。

  1. 在本地运行您的 Jekyll 站点。

   $ bundle exec jekyll serve
   > Configuration file: /Users/octocat/my-site/_config.yml
   >            Source: /Users/octocat/my-site
   >       Destination: /Users/octocat/my-site/_site
   > Incremental build: disabled. Enable with --incremental
   >      Generating...
   >                    done in 0.309 seconds.
   > Auto-regeneration: enabled for '/Users/octocat/my-site'
   > Configuration file: /Users/octocat/my-site/_config.yml
   >    Server address: http://127.0.0.1:4000/
   >  Server running... press ctrl-c to stop.

  1. 要预览站点,请在 web 浏览器中导航到 http://localhost:4000

更新 GitHub Pages gem

Jekyll 是一个活跃的开源项目,经常更新。 如果您计算机上的 github-pages gem 版本落后于 GitHub Pages 服务器上的 github-pages gem 版本,则您的站点在本地构建时的外观与在 GitHub 上发布时的外观可能不同。 为避免这种情况,请定期更新计算机上的 github-pages gem。

  1. 打开 Git Bash。

  1. 更新 github-pages gem。

  • 如果您安装了 Bundler,请运行 bundle update github-pages
    • 如果未安装 Bundler,则运行 gem update github-pages.

延伸阅读

使用 Jekyll 创建 GitHub Pages 站点
使用 Jekyll 向 GitHub Pages 站点添加内容
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }