【问题标题】:"Error: No base href set." after upgrade to Angular 8“错误:未设置基本 href。”升级到 Angular 8 后
【发布时间】:2019-11-01 09:35:20
【问题描述】:

完成从 Angular 5.x 到 8.0.1 的更新后,我的应用程序可以编译,但在运行时出现以下错误(使用 ng serve):

错误:未设置基本 href。请为 APP_BASE_HREF 令牌提供值或向文档添加基本元素。

我查看了其他帖子,例如:Angular 2 router no base href set,但是,我的应用程序中已经包含 HTML 基本元素。我的index.html如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>MyApp</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<app-root></app-root>
</html>

我可以通过添加来解决问题:

{
  provide: APP_BASE_HREF,
  useValue: '/'
}

致我的app.modules.ts,但我更想了解为什么现在需要这样做,因为使用ng new 创建的基本应用程序在没有此提供程序的情况下也可以工作。

【问题讨论】:

  • 它可能对错误信息没有任何影响,但是您应该在HTML文件中添加body,并将app-root组件放入其中。
  • 尝试在ng serve --baseHref= /中设置一次base href
  • @ConnorsFan 那 实际上是问题所在,该文件是由 Angular 4 CLI 生成的(据我所知),此后从未被触及,所以我完全忽略了那。如果你想把它作为答案,我很乐意接受。

标签: angular


【解决方案1】:

通过添加body 元素确保index.html 是一个有效的HTML 文件,您可以在其中插入Angular 根组件:

<html lang="en">
<head>
  <base href="/">
  ...
</head>
<body>
  <app-root></app-root>
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 2020-05-25
    • 1970-01-01
    • 2019-11-30
    • 2019-10-17
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多