Ich bekomme immer eine 404 Seite wenn ich:
1.) Aktualisieren Sie jede Seite auf meiner Angularjs-Seite (neben der Stammseite)
oder
2.. Klicken Sie auf Zurück , um von einer 404-Seite zur Stammseite zu wechseln (die Stammseite ist eine 404)
Hier ist mein .config()
code
Ich bin auf diese ähnliche Frage gestoßen, verstehe aber die Antworten nicht oder verstehe sie nicht.
Die angenommene Antwort besagt, Apache neu zu konfigurieren, um alle Pfade zum Root neu zu konfigurieren. Meine Seite befindet sich auf Github Pages. Ich habe eine .htaccess
Datei in meinem gh-pages
Repo, aber ich habe keine Ahnung, wie man es konfiguriert, um alle Pfade an den Stamm zu senden.
Die Antwort sagt, dass das <base>
-Element wie <base href="/" />
noch eine andere Sache ist, aber wo würde ich das platzieren? In meinem index.html
? Wenn ja, am oberen oder unteren Ende dieser Datei? Würde ich den href
Wert auch auf /
setzen?
Ich habe hier eine Lösung gefunden: Ссылка
Hier ist der kurze Beitrag:
angularjs stellt html5Mode bereit, wodurch Ihre App anstelle von Hashtags eine Pushstate-basierte URL verwendet. Dies erfordert jedoch serverseitige Unterstützung, da die generierten URLs ebenfalls ordnungsgemäß gerendert werden müssen.
Dies funktioniert tatsächlich mit den benutzerdefinierten 404-Seiten von github-Seiten, obwohl es nur für benutzerdefinierte domänenfähige Seiten verfügbar ist.
Zuerst kopiere alles in index.html auf 404.html. Dann füge das zu deiner App hinzu:
%Vor%Beachten Sie, dass Sie, wenn Sie in eckiger Version 1.1.5 sind, sicherstellen, dass html5Mode ordnungsgemäß funktioniert.
Nach diesen Vorschlägen konnte ich meine Website richtig funktionieren lassen. Jetzt, wenn ich Reload drücke, wird die Seite richtig geladen.
Die bessere Option wäre, jede URL auf die index.html umzuleiten:
%Vor%Dies wird KEINE 404-Antwort auf irgendeiner Seite verursachen.
Ich verwende meine angularjs-Anwendung mit Nginx
auf Vagrant. Und mit der gleichen Art von Problem konfrontiert.
Wenn ich den Browser mit einer URL neu lade, bekomme ich eine 404-Seite.
Ich habe den html5mode in der Hauptjs-Datei aktiviert. Wenn Sie html5Mode aktiviert haben, wird das #
-Zeichen nicht mehr in Ihren URLs verwendet. Das Symbol% co_de% ist nützlich, da es keine serverseitige Konfiguration erfordert. Ohne #
sieht die URL viel schöner aus, erfordert aber auch serverseitige Änderungen.
Hier sind einige Änderungen zu tun:
#
) im Ordner nginx.conf
(der Pfad hängt von Ihrem nginx-Installationsverzeichnis ab). /etc/nginx/sites-enabled
und ersetze es durch try_files $uri $uri/ =404;
try_files $uri $uri/ /index.html;
neu
Und ich habe versucht, die Seite nach den obigen Änderungen neu zu laden. Es funktioniert wie erwartet.
Tags und Links angularjs github github-pages .htaccess http-status-code-404