В Angular атрибут «base href» используется для указания базового URL-адреса для разрешения относительных URL-адресов. При сборке приложения Angular с помощью команды «ng build» важно настроить «base href», чтобы гарантировать правильное разрешение ресурсов и маршрутов приложения. В этой статье мы рассмотрим различные методы установки «базового href» и предоставим примеры кода для каждого подхода.
Метод 1: встроенная базовая ссылка Href в index.html
Самый простой способ установить «базовый href» — напрямую изменить файл index.html. Найдите раздел
в файле и добавьте следующую строку:
<base href="/">
Это устанавливает «базовый href» в корень приложения. Отрегулируйте путь “/”, если ваше приложение размещено в подкаталоге.
Метод 2: использование параметра «baseHref» в angular.json
Angular предоставляет файл конфигурации angular.json, в котором вы можете указать параметр «baseHref». Откройте angular.json и найдите раздел «архитектор» для цели «сборка». Добавьте следующую конфигурацию:
"options": {
"baseHref": "/"
}
Этот метод позволяет вам установить «базовый href» глобально для всех конфигураций сборки.
Метод 3: программная установка «baseHref»
Если вам нужно динамически установить «базовый href» в зависимости от среды или других факторов, вы можете сделать это программно в своем приложении Angular. В файле app.module.ts импортируйте токен APP_BASE_HREF из @angular/common и укажите для него собственное значение:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, APP_INITIALIZER, InjectionToken } from '@angular/core';
import { APP_BASE_HREF } from '@angular/common';
export function getBaseHref(): string {
// Code to determine the base href dynamically
return '/';
}
@NgModule({
imports: [BrowserModule],
providers: [
{
provide: APP_INITIALIZER,
useFactory: getBaseHref,
deps: [],
multi: true
},
{
provide: APP_BASE_HREF,
useFactory: getBaseHref
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
В приведенном выше примере функцию getBaseHref
можно настроить для динамического определения базового href в зависимости от ваших конкретных требований.
Метод 4. Использование переменных среды
Другой подход — использовать переменные среды для установки «базового href» во время процесса сборки. Создайте новый файл среды (например, Environment.prod.ts) и определите свойство «baseHref»:
export const environment = {
production: true,
baseHref: '/'
};
Затем измените файл angular.json, чтобы использовать переменную среды:
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"baseHref": "${environment.baseHref}"
}
}
Этот метод позволяет вам установить «базовый href» по-разному для каждой среды (например, разработки, производства).