HTML5 route fallback z parametrem

0

Szukałem, nie zanlazłem, może tutaj ktoś ogarnięty będzie w stanie pomóc. Mam SPA w Angular, z back-endem w ASP.NET Core 5. W Angularze nie chcę korzystać z Hash Bang Routes. Ale nie wiem jak skonfigurować routing, żeby przy odświeżeniu strony SPA wróciło mi do strony, która się posiłkuje parametrem. Dla przykładu: somewebsite.com/a5eccbd9 //gdzie a5eccbd9 jest parametrem.

Przykłady które są najbliższe rozwiązania problemu pomagają z back-endu przekierować do index.html.
https://stackoverflow.com/a/61275033
https://weblog.west-wind.com/posts/2017/aug/07/handling-html5-client-route-fallbacks-in-aspnet-core#Letting-ASP.NET-Core-Handle-Client-Side-Routes

Ale co dalej z parametrem? W Angular mój routing wygląda następująco:

const routes: Routes = [
  {
    path: '',
    component: FormComponent,
  },
  {
    path: ':id',
    component: FormComponent,
  },
];

Natomiast w index.html mam to: <base href="/" />

Nie mam pojęcia co mam dalej zrobić, żeby back-end przekierował mnie do odpowiedniego komponentu, do tego z parametrem z url.

1

Właściwie to fallback routing okazał się dużo prostszy niż zakładałem w początku. W back-endzie wystarczyło dodać mapowanie end-pointu:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapFallbackToFile("/{id}", "/index.html"); //<- dodane
                endpoints.MapFallbackToFile("/", "/index.html");
            });

I od tej pory po nowym żądaniu somewebsite.com/a5eccbd9 ASP.NET Core przekierowuje do Angular SPA index.html, tam natomiast Angular już wychwytuje w routing pod path: ':id',.

Też rozważałem to rozwiązanie: https://stackoverflow.com/q/43257272 gdzie z ASP.NET Core bym kierował go do index.html?id={id}, następnie z głównego komponentu aplikacji bym wyłapywał id, ale Angular się okazał być sprytniejszy niż sądziłem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1