Moja angularjs aplikacja używaJak mogę obsługiwać odświeżanie przeglądarki w aplikacji AngularJS SPA?
- ui-Router
- plik index.html
- wszystkie połączenia dla danych logowania i udać się do kontrolera sieci Web ASP.NET z adresem URL, który rozpoczyna się/api/xxx .
Kiedy użytkownik wchodzi na myapp.com, a następnie serwer index.html, który jest tym, czego chcę. Gdy użytkownik wybierze teraz linki na tej stronie, to Ui-Router pokazuje odpowiednie szablony wewnątrz index.html i pasek URL przeglądarka poprawnie wyświetla adresy takie jak:
myapp.com/home
myapp.com/home/overview
myapp.com/city
myapp.com/city/london
Zauważ, że moja konfiguracja jest tworzona tak:
.config([
'$httpProvider', '$locationProvider', '$sceProvider', '$stateProvider',
function (
$httpProvider, $locationProvider, $sceProvider, $stateProvider) {
$sceProvider.enabled(false);
$locationProvider.html5Mode(true);
Jeśli użytkownik kliknie teraz na odświeżeniu wówczas przeglądarka zapomina, że to było na index.html i próbuje znaleźć na stronie internetowej: myapp.com/city/london etc co oczywiście nie istnieje. Następnie pokazuje stronę błędu mówiącą, że strona nie istnieje.
Jak mogę sobie z tym poradzić? Chciałbym kliknięcie przez użytkownika na myapp.com/city odświeżyć i idealnie wrócić do myapp.com/city
dlaczego odświeżanie strony przekierowuje użytkownika do 'myapp.com/city/london', który nie istnieje? Jak to możliwe, że nie istnieje? Jak może być na pasku adresu przeglądarki, jeśli nie istnieje? –
"Jak może być na pasku adresu przeglądarki, jeśli nie istnieje". Ponieważ używam kątowego ui-routera. ui-router używa szablonów i zawsze możesz zobaczyć adres na pasku URL ekranu, nawet jeśli rzeczywiste strony mogą nie istnieć. – Melina
To nie ma nic wspólnego z routerem UI.Myślałem, że masz na myśli to, że adres URL wyświetlany w pasku adresu przeglądarki nie istnieje, istnieje, inaczej nigdy byś się nie pojawił :) Twój problem polega na niedopasowaniu routingu HTML5 do twojego serwera. –