我进入 Github 中的页面 (https://github.com/user/repo/settings/pages) 并设置一个自定义域。效果很好!
但是,每次部署(使用 gh-pages npm 包)时,它都会将域重置回
https://user.github.io/repo
这非常令人沮丧......我怎样才能告诉它永久使用我的自定义域?
看起来
gh-pages
npm 包的存储库中有关于此的报告。请参阅#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 crazy-max/ghaction-github-pages 的人来说,有一个您正在寻找的名为
fqdn
的设置。使用自定义域进行设置,它就不会破坏每个部署。
我在 gatsby 网站上遇到了同样的问题,我需要安装 gatsby-plugin-cname 包并将以下内容添加到 gatsby-config.js
module.exports = {
siteMetadata: {
siteUrl: 'http://custom-domain.com/'
},
plugins: [
'gatsby-plugin-cname'
],
}
如果您使用“npm run deploy”或任何 npm 部署脚本 在您的公共目录中添加 CNAME.txt 文件 在第一行中输入您的自定义域名。例如(acbd.com)
否则 在静态目录中创建并添加相同的内容
部署并检查