如何在角度5的网址中删除#?

per*_*l N 1 url typescript angular

实际上我在项目中使用的是角度5,我需要从网址中删除#。这是我的网址 http://localhost:4200/#/product/add。在我的域中发布后,它可以正常工作,但是在刷新页面时,由于我的网址中有,它显示404错误。是否有可能做到这一点?

  • Need to remove # in url

ben*_*oam 5

您需要将LocationStrategy更改为PathLocationStrategy

默认情况下,使用PathLocationStrategy进行角度操作,即您可能自己在定义HashLocationStrategy。在您的项目中寻找这种代码:

RouterModule.forRoot(routes, { useHash: true })
Run Code Online (Sandbox Code Playgroud)

在这种情况下,只需如下删除useHash:

RouterModule.forRoot(routes)
Run Code Online (Sandbox Code Playgroud)

或许

[Location, {provide: LocationStrategy, useClass: HashLocationStrategy}]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,将HashLocationStrategy更改为PathLocationStrategy,如下所示:

[Location, {provide: LocationStrategy, useClass: PathLocationStrategy}]
Run Code Online (Sandbox Code Playgroud)

  • 工作正常。但是如果我们按 F5 刷新该页面,页面将返回 404 错误。如何克服呢? (2认同)