在Angular 7中使用PathLocationStrategy后刷新页面时获取404

时间:2019-11-11 08:19:40

标签: javascript node.js angular typescript ecmascript-6

我们使用角度7 +节点8.11.4,之前我们使用HashLocationStrategy并且所有路由都有效,而如您所知,'#'将自动作为哈希标志添加到URL中,现在我们要删除'#',所以我使用PathLocationStrategy代替哈希*。更改后,当我刷新页面时,我将获得404页面,并且在访问重定向页面时也会发生,这是我的问题。

我已经搜索并知道,更改为PathLocationStrategy后,所有路由器都需要重定向到index.html(默认主页),而我不确定如何在节点环境中实现它(大多数是apache) ,nginx,tomcat)

请参阅下面的代码:

app.module.ts

providers: [{ provide: LocationStrategy, useClass: PathLocationStrategy }, LookupPsmService, ComponentMapping,
    {
      provide: HTTP_INTERCEPTORS,
      useClass: PsmHttpInterceptor,
      multi: true
    }, CookieService, AuthGuard],
  bootstrap: [AppComponent]
})
export class AppModule {CKEditorModule}

index.html

<base href="/">

AppRoutingModule

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

我的预期结果是删除URL中的“#”并可以在浏览器中刷新。

1 个答案:

答案 0 :(得分:0)

尝试删除它以查看是否有效

{ provide: LocationStrategy, useClass: PathLocationStrategy }

我认为您不需要那个

使用express更新以处理nodejs中的404

app.get('*', function(req, res) ...