首页 > 解决方案 > “错误:未设置基本 href。” 升级到 Angular 8 后

问题描述

完成从 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没有此提供程序的情况下也可以工作。

标签: angular

解决方案


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

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

推荐阅读