Die Verwendung von shelf_static
zum Bereitstellen statischer Webseiten über Dart ist kein Problem:
und ich kann shelf_route
fine für dynamische Webseiten verwenden:
Aber ich habe Schwierigkeiten, der dynamischen Version einen statischen Handler hinzuzufügen. Dinge, die ich ausprobiert habe, sind:
%Vor%oder ...
%Vor%oder ...
%Vor% Alle geben mir die angegebene home.html
Seite, wenn ich http://localhost:8080/
anfordere, aber explizit nach einer existierenden Seite frage http://localhost:8080/home.html
gibt mir Not Found.
Sollte ich das nicht einmal mit shelf_static
versuchen? Wenn nicht, was wäre der richtige Ansatz?
Danke!
Sie können Cascade
verwenden. Es erstellt eine Kette von Handlern, die zum nächsten übergehen, wenn der vorherige eine 404- oder 405-Antwort gibt.
Der Grund ist, dass die Methoden shelf_route
wie get
den Pfad vollständig übereinstimmen müssen. Bei statischen Dateien möchten Sie keine genauen Übereinstimmungen, da der Rest des Pfades den Pfad zur Datei angibt.
Dazu müssen Sie die add
-Methode verwenden und exactMatch: false
setzen, da derzeit die Methoden get
, post
usw. exactMatch
nicht anzeigen.
Folgendes funktioniert
%Vor%Zu guter Letzt: Ich habe ein Framework auf höherer Ebene namens mojito hinzugefügt, das auf vielen Regalkomponenten eine dünne Klebeschicht ist das macht das ein wenig einfacher.
Es ist immer noch irgendwie neu und schlecht dokumentiert, aber falls Sie interessiert sind, können Sie das folgende tun
%Vor% addStaticAssetHandler
ruft createStaticHandler
hinter den Kulissen auf, unterstützt aber auch das Aufrufen von Pub Serves im Entwicklungsmodus, was für Dinge wie Polymer
Tags und Links dart dart-shelf