Как можно разместить приложение Angular 2 в любом месте, кроме корневого пути?

#angular #angular-ui-router

#angular #angular-ui-router

Вопрос:

Я создаю веб-сайт, который имеет Angular (2) SPA в качестве компонента, используя ui-router-ng2. Я хотел бы сделать что-то вроде:

  • http://example.com / -> Домашняя страница по умолчанию (статическая) со ссылкой на SPA
  • http://example.com/app -> СПА-ЦЕНТР
  • Что-нибудь еще -> Статические страницы

Таким образом, маршрут «foo.bar» должен иметь URL-адрес «/app / #/ foo / bar». Мой сервер (написанный на Go) правильно обрабатывает маршрутизацию, но SPA заменяет адреса путями относительно корня вместо «/ app» («/ #/ foo / bar» вместо «/ app / #/ foo / bar»). Как мне сообщить Angular, где я хочу, чтобы SPA размещался?

Ответ №1:

Попробуйте установить базовый тег в head :

 <base href="http://your-app/root-angular-path/">
 

Или вы можете установить его непосредственно в своем модуле приложения :

 // >= Angular2 RC.6 
@NgModule({
  declarations: [AppComponent],
  imports: [RouterModule], 
  providers: [
   {provide: APP_BASE_HREF, useValue : 'http://my-app/angular/' },
   {provide: LocationStrategy, useClass: HashLocationStrategy} },
  ]
]);