小编典典

Angular 2从网址中删除哈希(#)

html

我正在尝试从Angular 2中的网址中删除#号,但找不到如何在不产生任何问题的情况下删除它的任何好的解释。

我记得在AngularJS 1上添加起来比较容易 $locationProvider.html5Mode(true);

如果您能告诉我这是否是一种好的做法(删除#)或可能会影响应用程序的SEO(或对其进行改进),我也将不胜感激。

PS:我正在将Angular 2与打字稿一起使用


阅读 422

收藏
2020-05-10

共1个答案

小编典典

正如@Volodymyr Bilyachat指出的那样,这PathLocationStrategy是Angular2中的默认位置策略,并且如果#url中存在,则一定是在某处被覆盖了。

在模块提供程序旁边,检查模块导入,也可以通过提供{ useHash: true }作为第二个参数来覆盖它RouterModule.forRoot

imports: [
    ...
    RouterModule.forRoot(routes, { useHash: true })  // remove second argument
]

另请注意,在使用时,PathLocationStrategy您需要配置Web服务器index.html以为所有请求的位置提供服务(应用程序的入口点)。

2020-05-10