“Базовый href не установлен. Укажите значение токена APP_BASE_HREF или добавьте базовый элемент в документ.” Это сообщение об ошибке часто встречается в веб-разработке при использовании фреймворков Angular или AngularJS. Это указывает на то, что базовый href не установлен, и его необходимо указать либо как значение для токена APP_BASE_HREF, либо путем добавления базового элемента в документ.
Чтобы устранить эту ошибку, вы можете использовать несколько методов в зависимости от вашего конкретного сценария. Я опишу несколько распространенных подходов с примерами кода:
-
Установите базовый href в файле index.html:
Откройте файлindex.htmlв проекте Angular или AngularJS и добавьте базовый элемент с соответствующим значением href.. Этот метод подходит, если у вас есть одна базовая ссылка для всего приложения.<!DOCTYPE html> <html> <head> <base href="/" /> <!-- ...other head elements... --> </head> <body> <!-- ...body content... --> </body> </html> -
Динамически установите базовый href с помощью токена APP_BASE_HREF:
В приложении Angular или AngularJS вы можете установить базовый href динамически, указав значение для токенаAPP_BASE_HREFна основе вашего среду или конфигурацию. Этот метод полезен, когда вам нужно иметь разные базовые значения href для разных сред.// Angular import { Component, Inject } from '@angular/core'; import { APP_BASE_HREF } from '@angular/common'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { constructor(@Inject(APP_BASE_HREF) private baseHref: string) {} }// AngularJS angular.module('app').run(['$location', function ($location) { $locationProvider.html5Mode(true); $locationProvider.baseHref = '/my-base-href'; }]); -
Используйте файлы конфигурации для конкретной среды.
Если у вас есть несколько сред (например, разработка, промежуточный запуск, производство), вы можете создать файлы конфигурации для конкретной среды и определить базовый href для каждой среды. Затем в процессе сборки или развертывания вы можете выбрать соответствующий файл конфигурации в зависимости от целевой среды. Этот метод позволяет легко управлять различными базовыми значениями href.// Angular // environment.ts export const environment = { production: false, baseHref: '/' }; // environment.prod.ts export const environment = { production: true, baseHref: '/my-app/' }; // app.component.ts import { Component } from '@angular/core'; import { environment } from '../environments/environment'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { baseHref = environment.baseHref; }// AngularJS // config.js var environment = { production: { baseHref: '/my-app/' }, development: { baseHref: '/' } }; angular.module('app').constant('environment', environment); // app.run.js angular.module('app').run(['$location', 'environment', function ($location, environment) { $locationProvider.html5Mode(true); $locationProvider.baseHref = environment.production.baseHref; }]);
Это некоторые распространенные методы устранения ошибки «Нет базового набора href» в приложениях Angular и AngularJS. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям.