【发布时间】:2020-03-06 22:14:37
【问题描述】:
我们使用 Angular 7 + 节点 8.11.4,以前,我们使用 HashLocationStrategy 并且所有路由都有效,而如您所知,'#' 将作为哈希标志自动添加到 URL,现在我们要删除 '# ',所以我使用 PathLocationStrategy 代替 Hash*。更改后,刷新页面时会出现404页面,访问重定向页面时也会出现,这是我的问题。
我查了知道,改成PathLocationStrategy后,所有路由器都需要重定向到index.html(默认主页),而我不知道如何在node环境中实现(大多数是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 中的“#”,并且可以在浏览器中刷新。
【问题讨论】:
-
您需要在服务器上实现 URL 重写。没有哈希,服务器不知道如何解析你的 URL - 因此 404s
-
@pixelbits 问题是如何在节点中重写 URL ......这让我很困惑
-
这可能会有所帮助:npmjs.com/package/express-urlrewrite
标签: javascript node.js angular typescript ecmascript-6