我试图从Angular 2中的url中删除#符号,但我找不到任何关于如何删除它而不产生任何问题的好解释.
我记得在AngularJS 1上,加$locationProvider.html5Mode(true);
更容易
另外,如果您能告诉我这是否是一个好的做法(删除#),或者可能会影响应用程序的SEO(或改进它),我将不胜感激.
PS:我正在使用Angular 2和typescript
我试图从Angular 2中的url中删除#符号,但我找不到任何关于如何删除它而不产生任何问题的好解释.
我记得在AngularJS 1上,加$locationProvider.html5Mode(true);
更容易
另外,如果您能告诉我这是否是一个好的做法(删除#),或者可能会影响应用程序的SEO(或改进它),我将不胜感激.
PS:我正在使用Angular 2和typescript
正如@Volodymyr-Bilyachat所指出的,PathLocationStrategy
在Angular2中是默认的location strategy,如果#
出现在url中,那么它一定在某个地方被覆盖了.
除了模块提供程序之外,请判断模块导入,还可以通过提供{ useHash: true }
作为RouterModule.forRoot
的第二个参数来覆盖它:
imports: [
...
RouterModule.forRoot(routes, { useHash: true }) // remove second argument
]
还请注意,当使用PathLocationStrategy
时,您需要将web服务器配置为为为所有请求的位置提供index.html
(应用程序的入口点).
下面是一些流行web服务器的配置示例:https://angular.io/guide/deployment#fallback-configuration-examples