Angular url中具有无限/#/的角度4路由

Angular url中具有无限/#/的角度4路由,angular,routing,url-routing,Angular,Routing,Url Routing,因为有些天我遇到了Angular CLI和路由的问题。 如果您指向确切的url,它似乎可以正常工作。 当您尝试使用routerLink重定向时,它会在url中写入无限/#页面。 若你们在索引上,试着转到它写的关于页面。。。直到完成RAM:D 这个问题只出现在带有“ng serve”的devmode中(但适用于hashlocationstrategy)。在生产模式下似乎工作正常 这里有一些代码 在index.html中 <base href="/"> 在“关于”页面中使用router

因为有些天我遇到了Angular CLI和路由的问题。 如果您指向确切的url,它似乎可以正常工作。 当您尝试使用routerLink重定向时,它会在url中写入无限/#页面。 若你们在索引上,试着转到它写的关于页面。。。直到完成RAM:D

这个问题只出现在带有“ng serve”的devmode中(但适用于hashlocationstrategy)。在生产模式下似乎工作正常

这里有一些代码

在index.html中

<base href="/">
在“关于”页面中使用routerLink定位

    <div>
        <a class="navbar-brand" [routerLink]="['/about']"><i class="fa fa-info"></i></a>
        <a class="navbar-brand" [routerLink]="['/connect']"><i class="fa fa-plug"></i></a>
    </div>

将路由器模块更改为

{ path: 'about', component: AboutComponent },
{ path: 'connect', component: ConnectComponent },
{ path: 'index', component: LayoutComponent },
{ path: '', redirectTo: 'index', pathMatch: 'full'},
{path:'**',redirectTo:'index',pathMatch:'full'}

在路由模块的@NgMoudle中添加{useHash:true}选项。这将解决问题,但我不完全理解为什么。该选项是为了与旧浏览器兼容而设计的,但我使用的是最新的Chrome浏览器。我在同一台PC上使用相同的浏览器编写了其他angular项目,但没有这个问题,我的代码似乎也有这个问题。我写这篇文章并不是为了解决问题,但鉴于没有人回答这个问题,我希望我的回答可以作为一个“线索”,让比我更好的人来解释发生了什么以及为什么

@NgModule({
imports:[RouterModule.forRoot(appRoutes, {useHash: true})], 
exports:[RouterModule]
})

已经试过了,根本不起作用。它会立即启动无限url,而无需单击任何routerLink:/您认为它的哪一部分有用?谢谢您的回答。是正确的。微软还建议在路由模块中使用HashDetectionStrategy。
@NgModule({
imports:[RouterModule.forRoot(appRoutes, {useHash: true})], 
exports:[RouterModule]
})