【问题标题】:Why angular routing adds hashtag # to the url为什么角度路由会在 url 中添加标签 #
【发布时间】:2019-02-06 11:14:48
【问题描述】:

使用的版本

角度版本:7.10 @angular/router": "~7.2.0",

问题是

为什么 Angular 会在 url 中添加 hashTag。

示例:

const routes: Routes = [
  {
    path: 'aktion',
    component: AktionComponent
  }

与网址匹配

http://localhost:4200/aktion

但与网址不匹配

http://localhost:4200/#/aktion

【问题讨论】:

标签: angular angular-routing


【解决方案1】:

在应用模块中,这样做

@NgModule({
  imports: [
  // other imports
    RouterModule.forRoot(routes, { useHash: true }) //make it false
  ],
  declarations: [
  ],
  providers: [

  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

【讨论】:

    【解决方案2】:

    如果您使用的是PathLocationStrategy,那么服务器应该配置为发送error page 也作为index.html,因为通常这会导致404 并且Angular 应该解析路由。

    为了避免麻烦,可以使用HashLocationStrategy,因为# 之后的任何部分都被服务器忽略并且仅从浏览器解析。因此你有#。 要删除它,您可以更新 RouterModule configuration,如其​​他答案所示。

    RouterModule.forRoot(AppRoutes, { useHash: false }),
    

    【讨论】:

      【解决方案3】:

      如果您已将此行添加到 App Module 然后它会添加 #

         RouterModule.forRoot(AppRoutes, { useHash: true }),
      

      【讨论】:

        猜你喜欢
        • 2023-02-16
        • 2016-01-18
        • 2022-06-25
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-23
        • 2017-08-19
        相关资源
        最近更新 更多