2017-09-14 62 views
2

我开始研究angular4应用程序,并在该应用程序中使用hash location strategy。我能够引入hash location strategy,其工作完全正常。angular4应用程序中的哈希位置策略

我的问题是:有什么办法可以在url中调整hash的位置?

例如:我的路由模块是:

[ 
    {path: '', redirectTo: 'parent', pathMatch: 'full'}, 
    { path: 'parent', 
    children: [ 
     { path: '', redirectTo: 'upload', pathMatch: 'full' }, 
     { path: 'upload', component: UploaderComponent }, 
     {path: 'dashboard', component: DashboardComponent}, 
    ] 
    } 
] 

而且我注册这些路线为:

RouterModule.forRoot(routes, { useHash: true }); 

当我载入我的应用程序,链接出来的:

http://localhost:4200/#/parent/upload 

但是,有什么办法让我的路线为:

http://localhost:4200/parent/#/upload 

我正在查看angular-routing的官方文档,但无法找到任何方法来实现此目的。

任何有用的建议,以实现这一点将不胜感激!

谢谢!

+0

您可以在src /文件夹中更改index.html中的base href。默认是,更改为,以便您的应用程序将在'parent /'上下文中运行 –

+0

@ChristianBenseler:感谢您的快速回复。但是这并不能帮助我。更改为没有帮助我。应用程序停止工作,因为应用程序试图在“/ parent”而不是“/”中查看每个软件包文件,这使得文件不可用。你能说出为什么会发生这种情况吗? –

+0

你为什么需要这个? –

回答

0

@ ChristianBenseler的评论让我去这个解决方案:

在我Index.html文件,更改为基本href为:

<base href="/"> to <base href="/parent"> 

,并在我的路由模块,它改变为:

[ 
    { path: '', redirectTo: 'upload', pathMatch: 'full' }, 
    { path: 'upload', component: UploaderComponent }, 
    {path: 'dashboard', component: DashboardComponent}, 
] 

这有助于实现路线为:

http://localhost:4200/parent#/upload