Ошибка: неверная конфигурация маршрута ''.Должно быть предоставлено одно из следующих: component, redirectTo, children или loadChildren - PullRequest
0 голосов
/ 24 января 2019

Я настраиваю '' путь на основе условия, которое работает нормально, и настраиваю маршрут к '' path. Я отлично работаю на моем сервере разработки. Но когда я собираю проект и запускаю его на производственном сервере, он выдает мне эту ошибку.

Uncaught Error: неверная конфигурация маршрута ''. Должно быть предоставлено одно из следующих: component, redirectTo, children или loadChildren

Это мой app-routing.module.ts

const fallback: Route = {
  path: '**',
  component: NotFoundComponent
}

var   home: Route = {};

const hostName = window.location.host;
console.log('hostName: ', hostName);
var workspaceName = hostName.split('.')[0];
console.log('workspaceName: ', workspaceName);

if (workspaceName === 'peprix' || workspaceName === 'www') {
  console.log("if");
  let homeRoute: Route = {
    path: '', component: MainComponent
  }
  home = homeRoute;
} else {
  console.log("else");
  let homeRoute: Route = {
    path: '', canActivate: [SessionGuard], data: { workspaceName: workspaceName }, resolve: { workspaceId: SigninService }, component: SigninNextComponent
  }
  home = homeRoute;
}

const routes: Routes = [
  home,
  { path: 'signin', canActivate: [SessionGuard], component: SigninComponent, data: { workspaceName: workspaceName } },
  { path: 'create-workspace', canActivate: [SessionGuard], component: CreateWorkspaceComponent },
  { path: 'projects', canActivate: [ProjectGuard], component: ProjectComponent },
  { path: 'password-reset', component: PasswordResetComponent },
  { path: 'new-password', component: NewPasswordComponent },
  fallback
];

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

P.S .: Я импортировал все компоненты и зависимости, поэтому здесь нет проблем.

1 Ответ

0 голосов
/ 24 января 2019

Я думаю, что это результат оптимизации упаковки в режиме производства Angular.

Пожалуйста, сначала посмотрите на этот тест.

Когда я пытаюсь следующий код, результат тот же:

- ошибка : Uncaught Error: Invalid configuration of route ''. One of the following must be provided: component, redirectTo, children or loadChildren

var home: Route = {};

// No matter what you do later, it is invalid.
// The variable home assigned to routes is unchanged.
Home.path = '';
Home.component = HomeComponent;

// result: home = {}
// so error
const routes: Routes = [home];

- справа

const home: Route = {
    path: '',
    component: HomeComponent
}

Наконец, для решения вашей проблемы вы можете сделать что-то вроде этого:

// Define them first
// MainComponent
const home: Route = {
    path: '',
    component: MainComponent
};

// SigninNextComponent
const home2: Route = {
    path: '',
    component: SigninNextComponent
}

// Your judgment parameters
const hostName = window.location.host;
var workspaceName = hostName.split('.')[0];

// Judge written here
const routes: Routes = [
    workspaceName === 'peprix' || workspaceName === 'www' ? home : home2,
    Fallback
];
...