Angular 2 Firebase 托管似乎需要散列标记

Angular 2 Firebase Hosting appears to require the hash marking

如何使用 Angular 2 和 Firebase 托管为我的路由配置正常的 URL?

示例路线: https://mywebsite.com/privacy-policy

我尝试使用这种方式定义的路由将我的网站加载到 Firebase 托管,但我无法导航到我的路由。

我的解决方法是为路由引入散列标记策略,如下所示-

@NgModule({
    declarations: [...
    ],
    imports: [
        ...,
        RouterModule.forRoot([
            {path: 'privacy-policy', component: PrivacyPolicyComponent},
            .....
            {path: '**', component: PageNotFoundComponent}
        ])
    ],
    providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}, ...],
    bootstrap: [AppComponent]
})

您必须设置您的 firebase 项目以将每个请求转发到您的 index.html。

firebase init 期间,系统询问您是否要重定向所有请求,也许您的回答是否..

将此添加到您的 firebase.json

  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }