Angular 4无法匹配生产版本中的任何路径

时间:2017-10-20 06:51:29

标签: angular

我有一个Angular 4(4.4.4)ng-cli app。

以下是我的路线:

export const routes: Routes = [
    { path: '', component: DefaultComponent },
    { path: 'somethingcool/:val', component: DefaultComponent },
    { path: 'login', component: LoginComponent },
    { path: 'some-where', component: SomeOtherComponent, canActivate: [AuthGuard] },
    { path: '**', redirectTo: 'login' }

];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes); 

SomeOtherComponent内部我访问可选的查询参数,如下所示:

constructor(private route: ActivatedRoute) { }

  ngOnInit() {
     this.route.queryParams.subscribe(p => {
      this.someValue = p['some-parameter'] == "true" || false;
    });
  }

当我在本地调试应用程序(ng serve)时,这非常有效。

当我执行ng build --prod时,我正在获得Error: Cannot match any routes. URL Segment: 'some-where'

编辑:具体来说,如果我转到https://myurl/some-where它可行,但https://myurl/some-where?some-parameter=true没有。如果我在本地托管它们(http://localhost:4200),那么这是有效的。

1 个答案:

答案 0 :(得分:0)

查看有关ng build的文档。

最后,您拥有所有可用参数,您应该使用--base-href-bh

此选项允许您指定应用程序的根URL,因此您应该执行以下操作:

ng build -bh 'myurl/some-where'