gpt4 book ai didi

deployment - 如何将中间人站点部署到 GitHub 用户页面

转载 作者:行者123 更新时间:2023-12-02 05:28:18 26 4
gpt4 key购买 nike

我正在尝试将 Middleman 项目部署到我的 GitHub 用户页面 ([username].github.io)。我正在使用 middleman-gh-pages gem,说明看起来很简单。

但是,在运行 bundle exec rake publish 之后,我的 GitHub 用户页面仍然显示 404。我在 GH 上看到构建,它位于“gh-pages”分支上。

这是发布后我在 master 上的目录结构。

这是发布后我在 gh-pages 分支上的目录结构。

当我导航到 [username].github.io/source/index.html.haml 时,我的浏览器会下载 haml 文件。似乎我的 gh-pages 分支并不是实际提供的。还有其他人遇到过这个问题吗?当我转到我的 GitHub 用户页面时,如何才能使 gh-pages 分支得到服务?

最佳答案

我看到这个问题已经解决了,但我还是要投入我的两分钱。

如何手动将 Middleman 项目部署到 Github Pages

注意:本指南介绍了如何部署项目网站(例如 username.github.io/projectname)。如果您正在部署用户网站(例如 username.github.io ),您需要调整一些选项。不难理解!

项目配置

配置.rb

Github Pages 将从子文件夹中为您的项目网站提供服务。这意味着您无法使用绝对 URL 引用您的页面和 Assets 。告诉中间人使用相对 URL:

activate :relative_assets
set :relative_links, true

不要忘记使用 link_to helper对于内部链接,不要写<a href...手动。

.gitignore

确保您的 .gitignore文件列出构建文件夹。如果没有,添加它:

/build/

.nojekyll

Github Pages 使用可能会干扰您的静态网站的 Jekyll 预处理器。要禁用 Jekyll 魔法,请创建空白 .nojekyll source/ 下的文件.

从您的项目根目录:

touch source/.nojekyll

repo 准备

这个例程你必须做一次。

  1. 在 Github 上发布您的项目。

  2. 改成build/目录。如果您的项目中没有它,请手动创建它或使用 bundle exec middleman build 构建您的项目。 .

    cd build/
  3. 初始化一个空的 git 仓库:

    git init .
  4. 将您的 Github 存储库添加为远程:

    git remote add origin git@github...git
  5. 开始一个新分支gh-pages :

    git checkout --orphan gh-pages

部署例程

每次部署更新时,您都必须重复以下步骤。考虑将它们添加到批处理文件中,这样您就不必手动重复它们。

  1. 构建您的项目。

    从项目根开始:

    bundle exec middleman build
  2. 进入构建目录:

    cd build/
  3. 添加所有文件:

    git add -A
  4. 提交它们。在这里您真的不需要有意义的提交消息,因为您的提交历史存储在项目的主分支中。没有必要在这里复制它。

    git commit -m build
  5. 将它们推送到 Github:

    git push origin gh-pages

    第一次推送时,添加-u :

    git push -u origin gh-pages

请注意,Github Pages 需要一些时间才能显示您的网站。他们说十分钟,但可能需要几个小时。请耐心等待,尽管您总是有可能搞砸某些事情。 :)

后续推送应该是立即的。如果推送没有反射(reflect)在您的网站上,请尝试用后续推送来抵消它。

关于deployment - 如何将中间人站点部署到 GitHub 用户页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com