Wie kann ich eine Browser-Aktualisierung in einer AngularJS SPA-Anwendung durchführen?

8

Meine AngularJS-Anwendung verwendet

  • UI-Router
  • eine index.html Datei
  • Alle Aufrufe für die Anmeldung und Daten werden an einen ASP.NET Web Controller mit einer URL gesendet, die mit / api / xxx beginnt.

Wenn ein Benutzer myapp.com eingibt, dann den Server index.html, was ich will. Wenn der Benutzer nun Links auf dieser Seite auswählt, zeigt der ui-router die entsprechenden Vorlagen in der index.html an und die URL-Leiste des Browsers zeigt die folgenden Adressen korrekt an:

%Vor%

Beachten Sie, dass meine Konfiguration wie folgt eingerichtet ist:

%Vor%

Wenn ein Benutzer nun auf "Aktualisieren" klickt, vergisst der Browser, dass er auf index.html war und versucht die Webseite zu finden: myapp.com/city/london etc, die natürlich nicht existiert. Es zeigt dann eine Fehlerseite an, die besagt, dass die Seite nicht existiert.

Wie kann ich mit dieser Situation umgehen? Ich möchte, dass ein Benutzer auf myapp.com/city klickt, um zu aktualisieren, und im Idealfall zurück zu myapp.com/city

gehe     
Melina 26.04.2014, 13:48
quelle

2 Antworten

6

BEARBEITEN

Wenn Sie HTML5-Modle-Routing mit eckigen verwenden, müssen Sie Ihrem Server mitteilen, wie er mit der Anfrage umgehen soll. Wenn Sie auf einer dieser Routen ankommen, zB wenn Sie versuchen, zu myapp.com/city zu gelangen, erhalten Sie eine Fehlermeldung Server wird nach einer city.html-Seite an der Wurzel des Servers suchen, die nicht da sein wird. Wenn Sie von Ihrer App aus zu dieser Route navigieren, funktioniert das problemlos. Wenn Sie das jedoch kopieren und in die Adressleiste Ihres Browsers einfügen, erhalten Sie einen 404, weil der Server nicht versteht, wie Sie zu city.html gelangen. Eine einfache Lösung wäre, den HTML5-Routing-Modus zu vermeiden. Gemäß den eckigen Dokumenten müssen Sie einige URL-Umschreibungen vornehmen, damit Ihr Server versteht, wie diese Seiten zu routen sind:

Aus den Dokumenten :

  

Wenn Sie den HTML5-Modus verwenden, müssen Sie die URL auf der Serverseite neu schreiben   müssen alle Ihre Links zum Einstiegspunkt Ihrer Anwendung neu schreiben   (z. B. index.html)

Sie können sich auch hier ansehen. In dieser Antwort wird erläutert, wie Sie HTML5-Routing mit Ihrem Server arbeiten lassen.

    
Mohammad Sepahvand 26.04.2014, 13:54
quelle
2

Wenn der Benutzer die Anwendung aktualisiert, können Sie sie zur Anmeldeseite oder zur Standardseite führen. was mit dem folgenden Code gemacht werden kann.

%Vor%     
ShwetaK4 23.03.2017 05:26
quelle

Tags und Links