在Angular中,BASE_HREF是用来定义应用所在URL的基准路径的,通常情况下,它是静态的。但是有些场景下,我们需要动态设置BASE_HREF,比如在打包应用的时候根据环境变量来动态设置,这时候我们可以通过修改index.html文件来实现。
具体步骤如下:
export function getBaseHref(): string { const baseHref = document.querySelector("base").getAttribute("href"); return baseHref.replace(//$/, ""); }
const providers = [{ provide: APP_BASE_HREF, useFactory: getBaseHref }];
@NgModule({ providers: providers })
import { Component, OnInit } from "@angular/core";
@Component({
selector: "app-root",
template: "
例如,我们可以在AppRoutingModule中这样使用:
import { NgModule } from "@angular/core"; import { Routes, RouterModule } from "@angular/router"; import { HomeComponent } from "./home/home.component"; import { AboutComponent } from "./about/about.component";
const routes: Routes = [ { path: