【问题标题】:host github pages from /dist folder in master branch从 master 分支的 /dist 文件夹中托管 github 页面
【发布时间】:2017-02-26 14:38:48
【问题描述】:

我试图将我的 -username-.github.io 存储库发布到 github 页面,但我的 index.html 位于 dist 文件夹中。

我不能使用git subtree push --prefix dist origin gh-pages,因为这适用于项目页面,而不是用户/组织页面。

我想要的是,github 将 dist 视为托管用户/组织页面的根目录。请帮忙。谢谢

PS:我不想做重定向黑客。

【问题讨论】:

    标签: github deployment build gulp github-pages


    【解决方案1】:

    Configuring a publishing source for GitHub Pages(非常有限)

    虽然您可以选择一个文件夹作为 gh-pages 的来源,但您只能为父级的/docs 目录这样做,并且您仍然必须实际提交构建的文件才能这样做,这意味着您必须覆盖 .gitignore 并提交两次

    自动部署脚本

    如果您使用 npm,有几个包可以处理将子目录发布到 gh-pages。使用选项--save-dev 安装以将其添加到您的devDependencies

    • push-dir

      # install
      $ npm install push-dir --save-dev
      
      # usage
      $ push-dir --dir=dist --branch=gh-pages
      
    • gh-pages

      # install
      $ npm install gh-pages --save-dev
      
      # usage
      $ gh-pages -d dist
      

    在任何一种情况下,如果让命令行工具为您工作并使用正确的选项对其进行配置,您可以在您的 package.json 中为它设置别名,如下所示:

    "scripts": {
      "deploy": "npm run build && gh-pages -d dist"
    }
    

    进一步阅读

    【讨论】:

      【解决方案2】:

      你不能这样做。

      GitHub 页面可以从以下任一位置托管:

      • master 分支中的/ 文件夹
      • gh-pages 分支中的/ 文件夹
      • master 分支中的/docs 文件夹

      但用户页面必须从主分支中的/ 文件夹构建。

      提示

      代码在另一个分支上而不是主分支上。每次推送到此分支后,在任何 CI/CD 工具中构建它并将其推送回主分支。

      【解决方案3】:

      如果你像我一样喜欢使用 git 中的子树上传到 github 页面,你可以使用类似下面的代码。

      git subtree push --prefix dist origin gh-pages
      

      【讨论】: