部署React应用后GitHub自定义域名自动恢复默认问题求助
解决GitHub Pages部署React应用后自定义域名丢失的问题
我之前碰到过完全一样的情况,每次部署完自定义域名就被打回默认的anton415.github.io,折腾了好一会儿才找到根因——问题出在部署时没有保留GitHub Pages识别自定义域名所需的CNAME文件,和create-react-app本身关系不大,主要是部署流程的小疏漏。
下面是一步步的解决办法:
1. 在项目中添加持久化的CNAME文件
GitHub Pages是通过部署分支里的CNAME文件来记住你的自定义域名的。如果每次部署都覆盖了分支内容却没带上这个文件,GitHub就会自动重置回默认域名。
- 在你的React项目的
public文件夹下,新建一个名为CNAME的文件(注意没有后缀名) - 打开这个文件,只写入你的自定义域名:
(不要加serdyuchenko.comhttps://或者任何路径,就纯域名)
这样一来,当你运行npm run build时,create-react-app会自动把这个CNAME文件复制到build文件夹里,后续部署时就会被同步到目标分支。
2. 确认部署脚本与GitHub Pages设置匹配
你的部署脚本是"deploy": "gh-pages -b master -d build",这里要确保:
- 你在GitHub仓库的「Settings → Pages」里,设置的部署分支是
master(如果仓库默认分支是main,就把脚本里的-b master改成-b main) - 如果之前你创建了
gh-pages分支但实际没用它来部署,完全可以删掉,避免分支混淆
3. 重新部署测试
运行以下命令重新部署:
npm run build npm run deploy
部署完成后,去GitHub Pages设置里看一眼,自定义域名应该已经自动被填充为serdyuchenko.com了,而且后续再部署也不会丢失——因为CNAME文件会一直跟着build产物被同步上去。
另外补充一下:你已经在package.json里加了"homepage": "https://serdyuchenko.com/",这个设置是对的,它会确保React生成的静态资源路径都是基于你的自定义域名,不会出现资源加载错误的问题,不用改动。
内容的提问来源于stack exchange,提问作者Anton Serdyuchenko
相关产品推荐
相关产品推荐

