首页 > 解决方案 > 在 Angular 7 中使用 PathLocationStrategy 后刷新页面时获取 404

问题描述

我们使用 Angular 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}

索引.html

<base href="/">

应用路由模块

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

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

标签: javascriptnode.jsangulartypescriptecmascript-6

解决方案


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

{ provide: LocationStrategy, useClass: PathLocationStrategy }

我不认为你会需要那个

使用express更新以处理nodejs中的404,您可以这样做

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

推荐阅读