core.js: 6014 ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не может соответствовать ни один маршрут.Сегмент URL: 'qa' - PullRequest
0 голосов
/ 23 сентября 2019

Как я могу загрузить приложение qa после нажатия http://host/qa?

Я создал ingress.yaml, обслуживающий dev-angular приложение на / (который работает нормально!), Но получая ошибку после нажатия / пути qa.

Я также изменил маршруты в angular и перенес приложение в k8s.По-прежнему получаю ту же ошибку.Я использую nginx для обслуживания своих статических страниц в nginx.Dev и тестовое приложение обслуживаются с использованием файлов nginx.

Угловой код app.module.ts:

const Routes = [
  {
    path: '',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: 'qa', redirectTo: 'login'
  },
  {
    path: 'login', component: LoginComponent
  },
  {
    path: 'search', component: SearchComponent, canActivate: [AuthGuard],
  },
  {
    path: 'feedback', component: FeedbackComponent, canActivate: [AuthGuard],
  },
  {
    path: 'details', component: DetailsComponent, canActivate: [AuthGuard],
  },
  {
    path: 'results', component: ResultsComponent, canActivate: [AuthGuard],
  }
];

@NgModule({
  declarations: [
    AppComponent,
    PostsComponent,
    SearchComponent,
    ResultsComponent,
    DetailsComponent,
    FeedbackComponent,
    FeedbackDialogComponent,
    LoginComponent,
    ProfileDialogComponent,
    DialogComponent,
    DetailsDialogComponent
  ],
  entryComponents: [
    FeedbackDialogComponent,
    ProfileDialogComponent,
    DialogComponent,
    DetailsDialogComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    HttpModule,
    RouterModule.forRoot(Routes),
    AppRoutingModule,
    BrowserAnimationsModule,
    MaterialModule,
    FormsModule,
    ReactiveFormsModule,
    NgbModule
  ],
  providers: [
    PostsService,
    LoginService,
    SearchService,
    FeedbackDialogService,
    HeaderHelper,
    SearchDataService,
    DetailsService,
    ResultDataService,
    ResultsService
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

Файл conf Nginx

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
        include /etc/nginx/mime.types;

        gzip on;
        gzip_min_length 1000;
        gzip_proxied expired no-cache no-store private auth;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        location / {
            try_files $uri $uri/ /index.html;
        }
    }
}

Входной файл Kubernetes -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: project-rules
  annotations:
    ingress.bluemix.net/rewrite-path: "serviceName=<dev-service> rewrite=/;serviceName=<qa-service> rewrite=/"
spec:
  tls:
  - hosts:
    - <>
    secretName: <secret>
  rules:
  - host: <>
    http:
      paths:
       - path: /
         backend:
           serviceName: dev-service
           servicePort: 80
       - path: /qa
         backend:
           serviceName: qa-service
           servicePort: 80

Полученное сообщение об ошибке: -

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'qa'
Error: Cannot match any routes. URL Segment: 'qa'
    at ApplyRedirects.noMatchError (router.js:4297)
    at CatchSubscriber.selector (router.js:4261)
    at CatchSubscriber.error (catchError.js:29)
    at MapSubscriber._error (Subscriber.js:75)
    at MapSubscriber.error (Subscriber.js:55)
    at MapSubscriber._error (Subscriber.js:75)
    at MapSubscriber.error (Subscriber.js:55)
    at MapSubscriber._error (Subscriber.js:75)
    at MapSubscriber.error (Subscriber.js:55)
    at ThrowIfEmptySubscriber._error (Subscriber.js:75)
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:39679)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)
...