在 Github Pages 上创建站点的临时版本和生产版本

问题描述 投票:0回答:3

我想使用 Github Pages 发布一个生产网站(例如,www.example.com)以及同一网站的临时版本(例如,staging.example.com)。

我在 Github 中为生产站点设置了一个存储库(例如 my-jekyll-website),创建了 gh-pages 分支,并将存储库根级别中的 CNAME 文件设置为 www.example.com。效果很好。

现在,将更改推送到 staging.example.com 的最不痛苦的方法是什么?

我尝试过的一件事是在 Github 上设置第二个远程存储库(例如 my-jekyll-website-staging),然后将其作为远程存储添加到我的本地 git 配置中。效果很好,但需要将存储库中的 CNAME 文件更改为 staging.example.com 才能正常工作。这不好,因为当我想部署到生产环境时,我需要将 CNAME 文件更改回 www.example.com。不理想。 我看过使用 git

过滤内容驱动程序

,但如果我理解正确的话,那就是在本地修改文件,而不是将文件的不同版本推送到不同的远程。 编辑:我还考虑过根本不使用自定义域进行暂存:即仅使用 username.github.io/my-jekyll-website-staging。不幸的是,我的站点根目录相对链接(例如 /images/foo.bar)中断了,因为现在生产和登台之间的基本 URL 不同。

git github-pages
3个回答
6
投票

[M]将暂存 git 分支合并到生产中 分支并推送[.] 你可以让 CNAME 永久指向 到各自的存储库,但单独操作存储库。

评论最初由

Jonathan Chan

按照 @JonathanChan 所说:维护两个独立的分支,然后在每个分支中
劫持

你的 CNAME 文件。这样,本地更改(对 CNAME 的更改)将不会提交到存储库。


0
投票

我正在使用 Hostinger VPS,它有一个 Git 部署和 Git Web hooks 选项。创建 GitHub Action 工作流程,并添加一个步骤以向 Hostinger 的 Web hook URL 触发

curl

命令

    


0
投票
GitHub Pages 文档

我花了一个下午的时间尝试绕过从暂存到生产的部署的 CNAME 要求。最终,我发现通过 GitHub Actions 部署时删除 CNAME 文件可以有效解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.