我正在尝试从Angular 2中的网址中删除#号,但找不到如何在不产生任何问题的情况下删除它的任何好的解释。
我记得在AngularJS 1上添加起来比较容易 $locationProvider.html5Mode(true);
$locationProvider.html5Mode(true);
如果您能告诉我这是否是一种好的做法(删除#)或可能会影响应用程序的SEO(或对其进行改进),我也将不胜感激。
PS:我正在将Angular 2与打字稿一起使用
正如@Volodymyr Bilyachat指出的那样,这PathLocationStrategy是Angular2中的默认位置策略,并且如果#url中存在,则一定是在某处被覆盖了。
PathLocationStrategy
#
在模块提供程序旁边,检查模块导入,也可以通过提供{ useHash: true }作为第二个参数来覆盖它RouterModule.forRoot:
{ useHash: true }
RouterModule.forRoot
imports: [ ... RouterModule.forRoot(routes, { useHash: true }) // remove second argument ]
另请注意,在使用时,PathLocationStrategy您需要配置Web服务器index.html以为所有请求的位置提供服务(应用程序的入口点)。
index.html