Angular-CLI App-Shell: поймать "универсальный" маршрут

Я пытаюсь добавить App-Shell в свое приложение. У меня есть защита маршрута, которая срабатывает во время процесса сборки сервера из-за подстановочного перенаправления.

RouterModule

const routes: Routes = [
  {
    path: '',
    component: RouteOneComponent,
    canActivate: [AuthGuard]
  },
  {
    path: '**',
    redirectTo: ''
  }];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

app.server.module

const routes: Routes = [ { path: 'app-shell', component: AppShellComponent }];

@NgModule({
  imports: [
    AppModule,
    ServerModule,
    RouterModule.forRoot(routes)
  ],
  bootstrap: [AppComponent],
  declarations: [AppShellComponent]
})
export class AppServerModule { }

Есть ли способ заставить серверную сборку игнорировать подстановочный редирект из клиентского AppRouterModule?

2 ответа

Решение

Моя проблема закончилась не столько о вызове HttpClient, сколько о вызываемых маршрутах. Я обновлю вопрос, чтобы отразить. Если вы используете app-shell прямо сейчас и ваши маршруты имеют path: '**' в нем вам нужно будет сделать то, что предложено в комментарии к этой проблеме:

https://github.com/angular/angular-cli/issues/8929

Вы используете http HttpClient?

import {HttpClient} from "@angular/common/http"

Если вы делаете так, вы должны удалить и использовать http Http

import {Http} from "@angular/http"

Не забудьте импортировать HttpModule в app.module

Другие вопросы по тегам