404将Angular 6应用程序部署到github页面时

时间:2019-01-28 18:55:53

标签: angular deployment angular6 github-pages

在本地提供服务时,我的应用程序可以正常工作。我已经编译了构建,没有错误。

站点链接在这里-https://evilernie44.github.io/users/index.html

当我尝试通过github页面加载网站时,我的get请求得到404。

我尝试过添加404.html,然后按照angular docs的建议将index.html的内容复制到它,但是我似乎仍然无法使其正常工作。

我对下一步的工作一无所知,有没有人有任何建议。

2 个答案:

答案 0 :(得分:2)

如果Angular应用程序的根目录位于路径下而不是域的根目录,则需要设置<base>标签以匹配该路径。您需要设置<base href="/users/">。如果应用程序是使用Angular CLI构建的,则可以使用ng build --baseHref="/users/"来设置<base>标签。

答案 1 :(得分:0)

就我自己而言,我试图让我的网站在自定义域上工作,并在发布时不断收到 404。以下是让我使用 angular 应用程序和 GitHub Pages 的自定义域的步骤:

  1. 让您的 DNS 提供商了解 GH Pages:

    • Configuring an apex domain 下列出的 4 个 IP 添加到“A”记录(在 Google Domains 中,这是在 DNS > 自定义资源记录下)
  2. 让您的 DNS 提供商了解您的子域(即 www.example.com):

    • 添加子域为“www”且地址为“(username).github.io”的 CNAME 记录。 (在 Google Domains 中,它添加在与上面相同的位置)
  3. 注意:Rest 应该在新分支 gh-pages 中完成,如 angular docs

    中所述
  4. 转到您的项目本地目录并执行命令:

    ng build --prod --output-dir docs --base-href "https://example.com"
    
  5. 打开生成的 docs 文件夹并复制 index.html 并将其命名为 404.html

  6. git add .git commit 更改然后 git push origin gh-pages

  7. 转到您的 GitHub 存储库设置 > 页面

    • 选择gh-pages分支和/docs
    • 等待网站发布并检查部署是否正常
    • 在提供的输入中添加您的自定义域:“example.com”,点击保存
    • 允许进行 DNS 检查并刷新页面以检查您的应用何时准备就绪(如果一切正常,将在顶部的绿色栏中显示“您的网站已在 https://example.com 上发布”)
  8. 在页面设置下添加自定义域名会在 /docs 文件夹中生成一个 CNAME 文件,进入后可以拉取来同步 repo。

感谢这个 blog 帮助我完成了大部分工作,但遗漏了一些部分。