Ich habe eine Anwendung mit einer Seite in Vue.js erstellt, die den HTML5-Verlaufsmodus für das Routing verwendet, und die HTML-Datei wird mit Django geliefert.
Die urls.py von django ist wie folgt:
%Vor%Und views.home :
%Vor%Stellen Sie sich das folgende Szenario vor:
/
) Da die Homepage mit der erforderlichen index.html für die Vuejs-App für die einzelne Seite antwortet, funktioniert sie wie sie soll.
/username/12
). Es funktioniert immer noch gut, da es mit dem Vue-Router navigiert.
Da in den urls.py Mustern kein /username/12
vorhanden ist, wird Seite nicht gefunden (404) angezeigt.
Nun könnte ich ein weiteres Muster in urls.py bereitstellen, um alle Muster in der letzten Reihenfolge wie folgt abzufangen:
%Vor%Aber andere URLs wie die Medien oder statische URLs zeigen auch auf den gleichen fang alle Muster regex . Wie kann ich dieses Problem lösen?
Ich habe ein ähnliches Problem.
Wie kann ich vue-router und django rest verwenden? Framework gleichzeitig ?
Dies ist meine Lösung für dieses Problem. Hoffe es hilft dir.
Ich hoffe auf Ergebnisse:
%Vor%und ich versuche das und es funktioniert!
urls.py
%Vor%Die Reihenfolge ist wichtig, %Code% ist der letzte
und das ist mein Vue-Router
%Vor%Da Sie "einzelne Seite" erwähnt haben:
Der Server soll nur eine Seite des index.html
(oder wie auch immer Sie es nennen möchten) bedienen.
Der Server und der Code der Webanwendung (Front-End) würden über API-Aufrufe kommunizieren, so dass der Server Ressourcen bereitstellt und die Web-App sich um die Verwendung dieser Ressource kümmert.
Im Falle einer fehlenden Ressource darf der Server immer noch nicht mit einer separaten Seite antworten, er sollte trotzdem mit einer Nachricht antworten, die die Web-App verwenden kann.
Ich habe eine einseitige Anwendung in Vue.js erstellt, die den HTML5 History-Modus für das Routing verwendet
Ich glaube, Sie verwenden den Vue-Router , der simuliert, dass die Single-Page-App eine Vollfunktions-Multi ist -Seitenanwendung.
Vielleicht möchten Sie dies und dies , aber das obige gilt für eine einzelne Seite Anwendung.
Sie haben Ihre URL-Muster geteilt:
%Vor%Aber andere URLs wie die Medien oder statische URLs zeigen auch auf den gleichen Fang aller Muster Regex. Wie kann ich dieses Problem lösen?
Eine Möglichkeit, die Sie verwalten können, wäre entweder, indem Sie auf einer anderen Route als '/'
wie oben für /app
angegeben dienen.
und in Ihrer Datei router.js:
%Vor%Oder den von den URLs bedienten Zweck voranstellen wie
%Vor%Da index.html als Vorlage dient (eine dynamische Seite), weil es von Ihren Ansichten aus bedient wird, anstatt statisch, wird das ein bisschen komisch.
Verwenden Sie zur Produktion definitiv nginx oder apache, um den statischen Inhalt auf ähnliche Weise zu bedienen.
Für die Entwicklung würde ich Folgendes tun:
%Vor%Tags und Links django vue.js vuejs2 single-page-application