10
Für eine kleine Entwicklerdokumentations-App möchte ich eine Sinatra-App einrichten, die nur HAML-Dateien bereitstellt. Nach Routen für CSS-Dateien und Bilder möchte ich eine Route, die versucht, eine HAML-Datei für jeden gewünschten Pfad zu laden.Wie kann ich Sinatra eine Catchall, Standardroute geben?
Zum Beispiel:
/index
Lastenviews/index.haml
, wenn es/this/page/might/exist
Lastenviews/this/page/might/exist.haml
vorhanden ist, wenn es
existiert Wie würde ich diesen Weg geben?
Ich hatte dies zu setzen ‚nach‘ alle meine anderen Routen, sie, um sicherzustellen, verarbeitet zu bekommen, da sonst die catchall Route '/ *' alle anderen blockieren würde Routen – Rots
Was passiert, wenn Sie in diesem Block einen Fehler von 500 bekommen? – nroose
@rorose - ein Fehler von 500 ist etwas, das ein Webserver zurückgeben würde; Es kann nicht in Ruby passieren. Wenn zB der 'haml'-Aufruf einen Fehler auslöst, hast du recht, dass ich ihn nicht retten würde und meine Site würde 500 zurückgeben. Außerdem, um korrekter zu sein, sollte ich einen 404-Statuscode in der Kopfzeile senden, wenn Senden Sie den Körper "Ich kann es nicht finden". Aber das ist nur ein einfaches Beispiel. –