Próbuję utworzyć aplikację jednokartkową w AngularJS z routingiem po stronie klienta wykonanym w trybie HTML5. W przypadku, gdy użytkownicy kiedykolwiek dodadzą zakładkę do strony w mojej witrynie, rozumiem, że potrzebuję prostego schematu routingu po stronie serwera, ale naprawdę chcę, aby zawsze wyświetlał moją pojedynczą stronę główną i propagował ten sam URL do elementu routingu po stronie klienta.ASP.NET MVC 4 Trasa do zakładek z zakrzywionymi adresami URL SPA
To catch-all trasa działa idealnie prostych adresów URL, które mają tylko jeden głęboka
routes.MapRoute(
"Default", // Route name
"{*catchall}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
przykładowe adresy URL:
http://myapp.com/moreInfo
http://myapp.com/contactUs
"moreinfo" i "contactus" są po prostu nazwanych tras wewnątrz kątowa . Jedynym rzeczywistym punktem wejścia do aplikacji z jedną stroną jest http://myapp.com. Jak dotąd wszystko działa bardzo sprawnie.
Kiedy próbuję go głęboko więcej niż jedna droga, chociaż aplikacja przechodzi w nieskończonej pętli:
http://myapp.com/user/5
Czy to dlatego, że mój server-side trasa nie jest wystarczające, aby „przejść” the " user/5 "URL do mojej aplikacji klienckiej? Czy muszę zrobić coś specjalnego, aby upewnić się, że bez względu na to, jak głęboko zagnieżdżony jest adres URL, zostanie on poprawnie przekazany do mojego SPA?