如何将我的AngularJS静态站点上传到Github Pages?

12 github git-subtree angularjs github-pages yeoman

我已经使用AngularJS创建了一个静态站点,现在想将其作为Github页面上传.我已按照这里的所有说明进行操作

https://help.github.com/articles/creating-project-pages-manually

我可以创建一个名为的新分支gh-pages,git push origin gh-pages我的所有内容都很好.当我去我的回购时,我看到新的gh-pages分支,其中包含所有文件

https://github.com/siddhion/maxmythic_angular/tree/gh-pages

问题是,当我尝试在http://siddhion.github.io/maxmythic_angular/上查看我的网站时,我只得到一个404页面.我认为问题是我没有我index.html的顶级目录.它实际上位于app目录中.我的目录结构看起来就是这样,因为我是通过Yeoman创建的.我假设我需要顶级的所有文件.或许这个假设我错了?

我如何让我的AngularJS静态网站正确显示?

UPDATE

我按照斯蒂芬提供的步骤.我到了第3步,我收到了一个错误:

$ git subtree push --prefix dist origin gh-pages
git push using:  origin gh-pages
To git@github.com:siddhion/maxmythic_angular.git
 ! [rejected]        5db3233d7c0822eedc5500409ce6a2d4b73ad427 -> gh-pages (non-fast-forward)
error: failed to push some refs to 'git@github.com:siddhion/maxmythic_angular.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and merge the remote changes
hint: (e.g. 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

然后我试过了

$ git pull origin master
From github.com:siddhion/maxmythic_angular
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

然后git subtree push --prefix dist origin gh-pages再次尝试,但得到了同样的错误.

在Yeoman部署页面,我在Some some errors部分下看到

您可能会收到类似的错误更新被拒绝,因为您当前分支的提示落后了.您可以通过强制推动遥控器来解决这个问题(但要小心,它会破坏已经存在的任何东西).

我很担心强迫它,subtree push因为我一般都是git的新手,不知道会被摧毁的是什么.我的意思是,我目前gh-pages在我的maxmythic_angular origin遥控器上没有分支,所以我并不担心,但我有我的master,gh-pages-oldgh-pages-v1在那里分支.如果我跑,他们会被摧毁git subtree push --prefix dist origin gh-pages吗?

Ste*_*hen 13

Yeoman网站上有一个部署指南,介绍如何使用gh-pages分支部署git subtree.

从指南...

当您运行grunt构建时,它会在可以部署的dist目录中生成应用程序的完全优化版本.

部署dist目录的推荐方法是使用git子树.

  1. 从.gitignore文件中删除dist目录.

  2. 将dist目录添加到存储库并将其与项目一起提交.

    git add dist && git commit -m "Initial dist subtree commit"

  3. 一旦dist目录成为项目的一部分,我们就可以使用git子树在不同的分支上设置一个单独的存储库.注意:前缀必须是dist目录的相对路径.这假设dist在您的根目录中.

    git subtree push --prefix dist origin gh-pages

  4. 现在,您可以在默认(主)分支中提交整个存储库,并且只要您想部署dist目录,就可以运行:

    git subtree push --prefix dist origin gh-pages

  • 我得到了同样的错误.我[删除了gh-pages分支](https://help.github.com/articles/unpublishing-a-project-pages-site)的来源:`git push origin --delete gh-pages`然后运行`git子树推--prefix dist origin gh-pages`然后它工作了. (3认同)