我有一个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
),那么这是有效的。
答案 0 :(得分:0)
查看有关ng build的文档。
最后,您拥有所有可用参数,您应该使用--base-href
或-bh
。
此选项允许您指定应用程序的根URL,因此您应该执行以下操作:
ng build -bh 'myurl/some-where'