如何在成角度的URL中隐藏#标签-路由

问题描述 投票:0回答:2

为了使路由在服务器主机中正常工作,我们可以在app-routing.module.ts文件中启用useHash = true,如下所示。

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

实际上,使用该解决方案,我们可以在应用程序中的组件内进行导航。但它总是在URL选项卡中显示#标签。

即:http://00.00.190.147:4202/ /请求

似乎有些奇怪的看法。在Angular应用程序中,有什么方法可以隐藏它,也可以通过其他任何方法在主机中进行完美的路由。

angular angular-routing
2个回答
0
投票

将useHash设置为false。

例如:-RouterModule.forRoot(appRoutes,{useHash:false})


0
投票

当您使用ng serve在本地服务您的应用程序时,它具有自己的服务器配置。您必须同样配置服务器,以便所有路由都指向index.html。角度路由器观察浏览器URL并更改应用程序的视图。角度应用程序是单页应用程序。

[检查https://angular.io/guide/deployment#routed-apps-must-fallback-to-indexhtml以将浏览器配置设置为指向index.html。

[此外,如果您有自己的API使用相同的域,则可能需要将这些路径放在angular.json的资产数组中,这样,角度应用程序就不会将它们视为角度路线,而会将它们视为资源(只是一个简单的技巧!)如果您使用的是NodeJs服务器,则不一定需要这样做,但是对于IIS来说,这可能是一个很好的技巧。

例如:如果您的角度应用程序在http://www.example.com运行,并且您的API类似于http://www.example.com/api/usershttp://www.example.com/api/user/52http://www.example.com/api/books等,则应在“ angular.json”文件的资产数组中添加“ api”,如下所示: http://www.example.com/api/将被视为资产,而不是角度申请路线的一部分。

为此,您可以将标志useHash = false设置或将其删除。 RouterModule.forRoot(routes)

© www.soinside.com 2019 - 2024. All rights reserved.