Angular 2 Firebase Hosting, по-видимому, требует маркировки хэшем

Как я могу настроить обычный URL-адрес для своих маршрутов с помощью Angular 2 и Firebase Hosting?

пример маршрута: 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]
})

person Philip Brack    schedule 19.12.2016    source источник


Ответы (1)


Вы должны настроить свой проект firebase для пересылки каждого запроса на ваш index.html.

Во время firebase init вас спросили, хотите ли вы перенаправить все запросы, возможно, вы ответили отрицательно..

добавь это в свой firebase.json

  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
person slaesh    schedule 19.12.2016
comment
Каким волшебством ты узнал, что это моя проблема!?!?! Огромное спасибо. - person Philip Brack; 21.12.2016