如何将Middleman站点部署到GitHub用户页面

时间:2014-12-28 20:30:53

标签: deployment middleman github-pages

我试图将Middleman项目部署到我的GitHub用户页面([username] .github.io)。我使用middleman-gh-pages宝石,说明书似乎很简单。

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

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

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

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

2 个答案:

答案 0 :(得分:15)

我看到这个问题已经解决了,但我仍然要花两分钱。

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

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

项目配置

config.rb

Github Pages将从子文件夹为您的项目网站提供服务。这意味着您无法使用绝对网址引用您的网页和资源。告诉Middleman使用相对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

回购准备

你必须做一次例程。

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

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

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

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

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

    git checkout --orphan gh-pages
    
  6. 部署例程

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

    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
      

    6. 请注意,Github Pages需要一段时间才能显示您的网站。他们说十分钟,但可能需要几个小时。要有耐心,尽管你总是有机会搞砸了。 :)

      后续推送应立即进行。如果推送没有反映在您的网站上,请尝试随后推送它。

答案 1 :(得分:2)

username.github.io又称用户/组织网站应该被推送到master分支。

middleman-gh-pages gem似乎只推进gh-pagessee publish task here),这是项目页面(username.github.io/projectName)的分支。