Angular:通过环境设置 APP_BASE_HREF 没有效果

Enz*_*ann 5 angular-cli angular

在我的 Angular 应用程序中,我想使用环境来<base href="">自动设置。

我的 中有以下相关行app.module.ts

...
import { APP_BASE_HREF } from "@angular/common";
import { environment } from "../environments/environment";
...

...
providers: [
    { provide: APP_BASE_HREF, useValue: environment.baseHref },
    ...
  ]
...
Run Code Online (Sandbox Code Playgroud)

这是我的环境文件:

environment.ts

export const environment = {
  ...,
  baseHref: "/app/"
};
Run Code Online (Sandbox Code Playgroud)

environment.prod.ts

export const environment = {
  ...
  baseHref: "/"
};
Run Code Online (Sandbox Code Playgroud)

但是,当使用ng build或 时ng build --prod,这两种配置都不会应用于生成的index.html.

我的配置:

  • 操作系统:Windows 10 x64
  • 角 v4.2.4
  • 角 CLI v1.1.1

感谢您抽出宝贵时间!

Pie*_*Duc 4

这是因为APP_BASE_HREF仅与PathLocationStrategy一起使用,它不会更改index.html基本 href。您应该使用命令行选项--base-href

ng build --prod --base-href /
Run Code Online (Sandbox Code Playgroud)

来自指南:

某些开发人员可能无法添加该元素,可能是因为他们无权访问index.html。

通过采取两个补救措施,这些开发人员仍然可以使用 HTML5 URL:

  • 为路由器提供适当的 APP_BASE_HREF 值。
  • 对所有 Web 资源使用根 URL:CSS、图像、脚本和模板 HTML 文件。