我进入Github中的页面(https://github.com/user/repo/settings/pages)并设置自定义域。它工作得很好!
然而,每次我部署(使用gh pages npm包(时,它都会将域重置回
https://user.github.io/repo
这令人难以置信的沮丧。。。我如何告诉它永久使用我的自定义域?
在gh-pages
npm包的repo中似乎有关于此的报告。参见#347、#236、#370和#213。
甚至还有一个仍然打开合并的拉取请求,该请求通过文档解决了该问题。
基本上,它说:
如果使用自定义域,请将部署行修改为部署脚本。这将阻止部署从github中的设置中删除域。
echo 'your_cutom_domain.online' > ./build/CNAME && gh-pages -d build"
编辑:还有其他选项,有些人直接更改他们的部署调用,并在他们的部署脚本中添加自定义域
var ghpages = require('gh-pages');
var fs = require('fs');
fs.writeFile('dist/CNAME', "your-custom-domain.com", function(err) {});
ghpages.publish('dist', function(err) {});
其他人只是按照建议将CNAME
放入您的发布文件夹。
对于我的React静态站点,我必须在每次部署之前将以下脚本添加到package.json
,以将具有自定义域的CNAME
文件添加到build/
目录。
"scripts": {
"build": "react-scripts build",
"add-domain": "echo "myAwesomeDomain.org" > build/CNAME",
"deploy": "npm run add-domain && gh-pages -d build",
"bd": "npm run build && npm run deploy",
},
对于那些使用GitHub Action疯狂的max/gaction GitHub页面的人来说,您正在寻找一个名为fqdn
的设置。用自定义域设置它,它就可以停止破坏每个部署。
请参阅此处的文档。
我在gatsby网站上遇到了同样的问题,我需要安装gatsby-plugin-cname包,并将以下内容添加到gatsby-config.js 中
module.exports = {
siteMetadata: {
siteUrl: 'http://custom-domain.com/'
},
plugins: [
'gatsby-plugin-cname'
],
}
https://www.gatsbyjs.com/plugins/gatsby-plugin-cname/