路由器未在应用程序加载时正确加载默认路由

时间:2018-03-07 18:15:08

标签: javascript angular angular5

在过去的一天半里,我一直在努力解决这个问题,但仍然没有取得任何进展。目前,我正在尝试加载我的角度应用程序,并在应用程序引导时将其默认为特定页面。不幸的是,它重定向到不同的路线。

我想去: https://clwd0002278/ControlTower/NICK/UI/#/

但是,当我最初加载时,它会转到https://clwd0002278/ControlTower/NICK/UI/#/ControlTower/NICK/UI/,这会导致404页面被点击。

我也会尝试使用与上面相同的结果转到https://clwd0002278/ControlTower/NICK/UI/

以下是代码,以便有人可以尝试理解这一点:

const routes: Routes = [
    {path: '', redirectTo: 'patients', pathMatch: 'full'},
    {path: 'dashboard', component: DashboardComponent},
    {path: 'notifications', component: NotificationsComponent},
    {path: 'patients', component: PatientListComponent},
    {path: '404', component: NotFoundComponent},
    {path: '**', component: NotFoundComponent},
];

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

这是html页面上的base-href:

<base href="#">

我尝试在构建脚本中更改base-hrefdeploy-url,并完全省略它们。我只是不确定我现在缺少什么。

任何帮助将不胜感激,并询问您是否需要更多信息。

编辑:

该应用程序位于https://clwd0002278/ControlTower/NICK/UI/ 位于https://clwd0002278/

3 个答案:

答案 0 :(得分:0)

添加

<head>
  <base href="/ControlTower/NICK/UI">
  ...
</head>

index.html

或在AppModule中提供int

import { APP_BASE_HREF } from '@angular/common';
...

providers: [{APP_BASE_HREF, useValue: '/ControlTower/NICK/UI'}]

另见

答案 1 :(得分:0)

您的默认路线始终必须位于路径“**”之前。

 {path: '404', component: NotFoundComponent},
{path: '', redirectTo: 'patients', pathMatch: 'full'},
  {path: '**', component: NotFoundComponent},

参考 https://angular.io/guide/router

答案 2 :(得分:0)

因此,事实证明,ngrx中有一些代码是从我们的基础项目包中提取的,这些代码一直将location.pathname放到angular / ngrx路由包的url的末尾。我很沮丧,却终于解决了这个问题而感到宽慰。

我评论了与此相关的减速器和初始状态以解决我的问题。所以,要小心ngrx如何与你的网址互动!