通过Actions推送部署GithubPages域名被解绑问题解决
问题描述#
使用Github Action将hugo生成的public文件夹推送到github.io仓库时,pages绑定的域名会被自动解绑,导致访问报404
解决办法#
- 在hugo项目根目录创建一个名为
static
的文件夹(如果它还不存在),这个文件夹中的内容会被hugo直接复制到生成的public
文件夹中。 - 在
static
文件夹中创建一个名为CNAME
的文件,并在其中写入你的域名。以本站为例:
$ echo "gali.fan" >> static/CNAME
- 确保Github Actions工作流中,不会删除或忽略
CNAME
文件。修改Github Actions工作流文件:
# gh-pages.yml
...
- name: Deploy
uses: peaceiris/actions-gh-pages@v3 # 一个自动发布github pages的action
with:
# github_token: ${{ secrets.GITHUB_TOKEN }} 该项适用于发布到源码相同repo的情况,不能用于发布到其他repo
external_repository: yueluz/yueluz.github.io # 发布到哪个repo
personal_token: ${{ secrets.ACTION_ACCESS_TOKEN }} # 发布到其他repo需要提供上面生成的personal access token
publish_dir: ./public # 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
publish_branch: main # 发布到哪个branch
cname: gali.fan # 确保域名不会被解除 <<<<<<<<<<<<<<<<<<<<<<<<<<<<增加内容>>>>>>>>>>>>>>>>>>>>>>>>>>>>
...