Buduję rozwiązanie klient/serwer, używając aplikacji pojedynczej strony AngularJS jako komponentu klienta i interfejsu RESTful API Self-Host ServiceStack jako komponentu serwera. Pojedynczy projekt aplikacji konsolowej programu Visual Studio zawiera pliki HTML i JavaScript dla składnika AngularJS, wraz z klasami C# do ładowania składnika ServiceStack AppHost (udostępniłem obowiązki interfejsu i usługi w celu oddzielenia projektów Visual Studio).W jaki sposób mogę uzyskać AngularJS działający z atrybutem FallbackRoute usługi ServiceStack w celu obsługi URL-i opartych na HTML pushstate?
Ustawiłem wszystkie pliki HTML i JavaScript, aby uzyskać "Akcja kompilacji" "Brak" i "Katalog Kopiuj do wyjścia" w "Kopiuj, jeśli jest nowsza".
Wszystko działa bardzo dobrze, o ile jestem gotów zaakceptować "#" w adresach URL mojej witryny. Chciałbym to wyeliminować, używając adresów URL z pushstate HTML5.
Skutecznie oznacza to, że muszę przekonać serwis ServiceStack, aby wyświetlił moją domyślną stronę powłoki HTML strony pojedynczej za każdym razem, gdy żądana jest nieistniejąca trasa. Istnieje teraz atrybut FallbackRouteavailable in ServiceStack, który wydaje się być dokładnie dodany do tego celu.
Jednak nie jestem pewien, jak z niego korzystać. Znalazłem ludzi zadających podobne pytania here, here i here. Ale podane odpowiedzi były wszystkie przed pojawieniem się nowego atrybutu FallbackRoute.
Zasadniczo szukam prostego, ale kompletnego przykładu użycia atrybutu FallbackRoute, aby zapewnić, że wszelkie żądania dotyczące nieistniejących tras są przekierowywane na pojedynczą statyczną stronę HTML.
To wszystko jest bardzo fajne. Jednak nie będę musiał dodawać wtyczki Razor, jeśli nie będę musiał. Używam pojedynczej statycznej strony HTML i wydaje się przesadą, że muszę dodać silnik szablonów Razor, aby dodać trasę zastępczą. – Holf
dodano opcję "bez brzytwy" –
Wygląda bardzo ładnie ... Będę ją wypróbowywać później. Dzięki! – Holf