首页 > 解决方案 > 如何不删除“index.html”?

问题描述

我的 Angular 6 应用程序有问题。

我的应用网址:my-server/my-app/index.html。

加载应用程序时,url 会自动重写,而没有“index.html”。这是一个大问题,因为深层链接无法使用。

示例:my-server/my-app/deep-route-1/6

该应用程序运行良好,但如果用户想要复制/粘贴此深层链接,服务器 http 响应 404(我认为这很正常)。

如何解决这个问题呢?

这是我的路线声明:

const routes: Routes = [
  //{ path: '', redirectTo: '', pathMatch: 'full' },
  { path: 'simulation/:id', component: SimulateurComponent, resolve: { vm: SimulationResolver } },
  { path: 'parametres/:nedt', component: ParamsComponent, resolve: { params: ParamsResolver } }
]

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

编辑

经过搜索,似乎是 Angluar.io 的一个新特性。Angular 6 使用“html 5 urls”,这就是他自动删除 url 中的“index.html”的原因。

为了解决这个问题,有两个解决方案: - 一个复杂的(重写 url) - 没有时间测试它 - 一个简单的:使用 angular.js 技术:

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

“usehash”很神奇;)

标签: angularangular6router

解决方案


推荐阅读