Angular:按环境设置APP_BASE_HREF无效

时间:2017-06-27 07:49:49

标签: angular angular-cli

在我的Angular App中,我想使用环境自动设置<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 },
    ...
  ]
...

以下是我的环境文件:

environment.ts

export const environment = {
  ...,
  baseHref: "/app/"
};

environment.prod.ts

export const environment = {
  ...
  baseHref: "/"
};

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

我的配置:

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

感谢您抽出宝贵时间!

2 个答案:

答案 0 :(得分:1)

因为APP_BASE_HREF仅与PathLocationStrategy一起使用,所以它不会改变index.html基础href。您应该使用--base-href的命令行选项:

ng build --prod --base-href /

从指南中:

  

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

     

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

     
      
  • 为路由器提供适当的APP_BASE_HREF值。
  •   
  • 对所有网络资源使用根网址:CSS,图片,脚本和模板HTML文件。
  •   

答案 1 :(得分:0)

您是否尝试过ng build --prod --base-href <path>

请参阅https://github.com/angular/angular-cli/issues/1064