Wie bediene ich sowohl dynamische als auch statische Seiten mit Dart und Shelf?

8

Die Verwendung von shelf_static zum Bereitstellen statischer Webseiten über Dart ist kein Problem:

%Vor%

und ich kann shelf_route fine für dynamische Webseiten verwenden:

%Vor%

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!

    
th65 06.12.2014, 13:54
quelle

3 Antworten

9

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.

%Vor%     
Danny Kirchmeier 06.12.2014, 19:50
quelle
6

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

sehr praktisch ist     
Anders 08.12.2014 01:03
quelle
2

A fallbackHandler kann für Router angegeben werden. Es scheint, dass die Verwendung des statischen Handlers hier das Problem löst.

%Vor%     
th65 06.12.2014 14:34
quelle

Tags und Links