Angular应用本地http-server正常,部署GitHub Pages及子域名时出错
Angular部署GitHub Pages问题解决方案
一、JS文件加载错误(空白页)
- 不要手动修改
index.html的base href,构建时通过参数指定更可靠:
若为项目仓库(非用户主页仓库),执行:
若为用户主页仓库(直接绑定ng build --prod --base-href="/你的仓库名/" --output-path=www用户名.github.io),则base-href设为/:ng build --prod --base-href="/" --output-path=www - 检查GitHub Pages部署源:在仓库设置的Pages页面,确认部署分支为
master(或main),且目标目录为www。
二、.nojekyll文件无法纳入构建
- 在项目根目录创建
.nojekyll文件,修改angular.json的assets配置,将该文件加入构建资源:
在projects -> 你的项目名 -> architect -> build -> options -> assets数组中添加:
后续构建时,该文件会自动复制到{ "glob": ".nojekyll", "input": "./", "output": "./" }www目录。 - 若使用
ng deploy,先确保安装依赖:
部署命令直接指定参数:npm install angular-cli-ghpages --save-devng deploy --base-href="/你的仓库名/" --output-path=www
三、子域名访问异常
- 确认自定义域名配置:在GitHub Pages设置页填写子域名,同时确保域名解析的CNAME记录指向
你的用户名.github.io。 - 适配子域名的
base href:使用子域名时,base-href需设为/,构建命令为:ng build --prod --base-href="/" --output-path=www - 确保CNAME文件部署:在项目根目录创建
CNAME文件,内容为你的子域名,同样将其加入angular.json的assets配置:{ "glob": "CNAME", "input": "./", "output": "./" }
内容的提问来源于stack exchange,提问作者Barry
相关产品推荐
相关产品推荐

