ng buildで環境変数からbase hrefを設定する 質問する

ng buildで環境変数からbase hrefを設定する 質問する

baseHref誰か、angular-cli でこれを実現する方法を知っていますか? ビルド中に選択された環境に基づいて、環境変数にパスを保存し、baseHref パスを設定できるようにしたいと思い/src/environments/environment.x.tsます。

このようなもの:

環境.ts

export const environment = {
  production: false,
  baseHref: '/'
};

環境.prod.ts

export const environment = {
  production: true,
  baseHref: '/my-app/'
};

そして電話して…

ng build --prod

...そして私の/dist/index.htmlファイルを表示します<base href="/my-app/">

環境変数に--base-hrefビルドオプションと同じ名前を付ければ、ビルドコマンドCLI がそれを拾うかもしれないが、それもだめだ。

コマンドラインから環境変数を参照する方法はありますか? 次のようなものはありますかng build --base-href environment.baseHref?

ベストアンサー1

使用する必要があるAPP_BASE_HREF

@NgModule({
  providers: [{provide: APP_BASE_HREF, useValue: environment.baseHref }]
})
class AppModule {}

見る角度ドキュメント

編集

CSS/JS は APP_BASE_HREF では動作しないため、次のようにします。

アプリコンポーネント、DOCUMENTを注入するimport {DOCUMENT} from "@angular/platform-browser";

constructor(@Inject(DOCUMENT) private document) {
}

そしてあなたのngOnInit()

ngOnInit(): void {
    let bases = this.document.getElementsByTagName('base');

    if (bases.length > 0) {
      bases[0].setAttribute('href', environment.baseHref);

    }
  }

おすすめ記事