在 master 分支的 /dist 文件夹中托管 github 个页面

host github pages from /dist folder in master branch

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

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

我想要的只是 github 将 dist 视为托管 user/org 页面的根目录。请help.Thanks

PS:我不想进行重定向 hack。

你不能这样做。

GitHub 页面可以从以下任一主机托管:

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

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

提示

代码在除 master 之外的另一个分支上。每次推送到此分支后,在任何 CI/CD 工具中构建它并将其推送回 master 分支。

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

虽然您可以 select 一个文件夹作为 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"
}

进一步阅读

如果像我一样,您更愿意使用 git 中的子树上传到 git 中心页面,您可以使用类似下面的代码。

git subtree push --prefix dist origin gh-pages