【问题标题】:Building static assets into `./doc` folder of Github pages is not working将静态资产构建到 Github 页面的 `./doc` 文件夹中不起作用
【发布时间】:2023-02-07 03:27:30
【问题描述】:

我一直在用Github页面自定义域将包括index.html在内的所有资产放入根文件夹的存储库。

首先设置要使用Github pages部署的项目;默认操作一切顺利; index.html 得到服务,一切正常。

现在,因为我正在尝试模块化和清理项目,除了必要的构建配置文件(以及源代码)之外,根文件夹中什么也没有留下。

在本地 npm run build 我的构建过程的一部分工作正常。然后我可以从 docs 文件夹中获取 serve 文件(因为 Github 使用 root 或 docs 文件夹)我的包转到 docs;所以我也在 Github 页面中更改了该配置:

(DNS 检查在几秒后变为绿色。)

所以我定义了一个 NodeJS 操作来复制我的本地构建过程:

name: Node.js CI

on:
  push:
    branches: [  main  ]
  pull_request:
    branches: [  main  ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [16.x]

    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm ci
      - run: npm run build --if-present

我的操作页面显示此顺序:

我假设构建是在 Github 页面进行内部配置之前完成的。 我还确保 CNAME 文件在每次构建后仍然存在 (/docs)。

使用 (/docs) 文件夹可以为静态站点提供服务吗?和 root 一样? 我的操作是否在 Github 页面到位之前运行?

供参考:我的网站无法访问:https://mylinks.space/

我能想到的最后一件事是,因为站点是从不同的文件夹提供服务的,现在 CNAME 文件需要时间来传播(DNS 检查)。

【问题讨论】:

  • 但构建的结果实际上并不是回购协议,是吗? GitHub Pages 从干净的签出开始。
  • 我懂了!!我以为接下来的动作(不知何故)在同一卷中,我没有注意。我会试试的。

标签: github github-actions github-pages


【解决方案1】:

@jonrsharpe:就是这样。

供参考:here 的解决方案是创建另一个分支,添加文件夹(不忽略)并将唯一的文件夹推送到该分支,例如“gh-pages”分支。

对于这种特殊情况,这是一个完美的解决方案。不过,我不得不再次从“主”分支中删除该文件夹。您可以使用脚本自动执行 git 命令的过程。

这是我的案例的过程:(docs.gitignore

  1. Manuel 每次都在本地构建
  2. 然后
    git add docs
    git subtree push --prefix docs origin gh-pages
    git rm -r docs && git commit -m "Initial dist subtree commit"
    git push
    

【讨论】:

    最近更新 更多