La mia applicazione utilizza AngularJSCome posso gestire un aggiornamento del browser in un'applicazione AngularJS SPA?
- ui-router
- un file index.html
- tutte le chiamate per il login e dei dati andare a un Web ASP.NET controller con un URL che inizia con/api/xxx .
Quando un utente immette myapp.com, quindi il server index.html che è quello che voglio. Quando l'utente seleziona ora collegamenti a quella pagina, quindi ui-router mostra i modelli appropriati all'interno della index.html e la barra degli indirizzi del browser viene visualizzato correttamente gli indirizzi come questi:
myapp.com/home
myapp.com/home/overview
myapp.com/city
myapp.com/city/london
Si noti che la mia configurazione è impostato in questo modo:
.config([
'$httpProvider', '$locationProvider', '$sceProvider', '$stateProvider',
function (
$httpProvider, $locationProvider, $sceProvider, $stateProvider) {
$sceProvider.enabled(false);
$locationProvider.html5Mode(true);
Se un utente fa clic sul ora di aggiornamento quindi il browser dimentica che era su index.html e cerca di trovare la pagina web: myapp.com/city/london etc che ovviamente non esiste. Quindi mostra una pagina di errore che dice che la pagina non esiste.
Come posso gestire questa situazione? Vorrei un clic utente su myapp.com/city per aggiornare e idealmente tornare a myapp.com/city
Perché dici aggiornare la pagina reindirizza l'utente a 'myapp.com/città/london' che non esiste? Come può non esistere? Come può essere nella barra degli indirizzi del browser in primo luogo se non esiste? –
"Come può essere nella barra degli indirizzi del browser in primo luogo se non esiste". Perché sto usando un ui-router angolare. ui-router utilizza i modelli e puoi sempre vedere l'indirizzo nella barra degli URL dello schermo anche se le pagine reali potrebbero non esistere. – Melina
Questo non ha nulla a che fare con il router UI.Pensavo volevi dire che l'URL visualizzato nella barra degli indirizzi del browser non esisteva, altrimenti esiste altrimenti non saresti mai arrivato lì :) Il tuo problema è con l'errore di indirizzamento del router HTML5 con il tuo server. –