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

ihn*_*oda 2 deployment middleman github-pages

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

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

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

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

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

And*_*aus 15

我看到这个问题已经解决了,但我仍然会把我的两分钱.

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

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

项目配置

config.rb

Github Pages将从子文件夹为您的项目网站提供服务.这意味着您无法使用绝对URL引用您的网页和资产.告诉Middleman使用相对URL:

activate :relative_assets
set :relative_links, true
Run Code Online (Sandbox Code Playgroud)

不要忘记使用link_to帮助程序进行内部链接,不要<a href...手动编写.

的.gitignore

确保您的.gitignore文件列出了build文件夹.如果没有,请添加:

/build/
Run Code Online (Sandbox Code Playgroud)

.nojekyll

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

从您的项目根目录:

touch source/.nojekyll
Run Code Online (Sandbox Code Playgroud)

回购准备

你必须做一次例程.

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

  2. 切换到build/目录.如果您的项目中没有它,可以手动创建它,也可以用项目构建项目bundle exec middleman build.

    cd build/
    
    Run Code Online (Sandbox Code Playgroud)
  3. 初始化一个空的git repo:

    git init .
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将您的Github仓库添加为远程:

    git remote add origin git@github...git
    
    Run Code Online (Sandbox Code Playgroud)
  5. 开始一个新的分支gh-pages:

    git checkout --orphan gh-pages
    
    Run Code Online (Sandbox Code Playgroud)

部署例程

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

  1. 建立你的项目.

    从项目根开始:

    bundle exec middleman build
    
    Run Code Online (Sandbox Code Playgroud)
  2. 切换到构建目录:

    cd build/
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加所有文件:

    git add -A
    
    Run Code Online (Sandbox Code Playgroud)
  4. 提交他们.您实际上并不需要有意义的提交消息,因为您的提交历史记录存储在项目的主分支中.这里不需要复制它.

    git commit -m build
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将它们推送到Github:

    git push origin gh-pages
    
    Run Code Online (Sandbox Code Playgroud)

    在第一次推送期间,添加-u:

    git push -u origin gh-pages
    
    Run Code Online (Sandbox Code Playgroud)

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

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