So verwenden Sie Catch-All-Routen mit Kemal
Für eine Vue.js Single-Page-Applikation - zumindest auf einer SUB-URL unserer Seite - wollen wir einen Catch-All auf unserem Server, der immer die gleiche Vorlage / HTML-Ausgabe an den Browser rendert.
Kemal basiert intern auf Radix für das Routing:
Radix hat einen Catch All / Glob Charakter: *
Wenn wir also eine Catch-All-Route erstellen wollen, schreiben wir einfach:
get "/debug/*" do |env|
render "src/views/hello.ecr"
Ende
Dies wird zum Beispiel passen:
- /debug
- /debug/
- /debug/anything
- /debug/alles/so/tief/wie/du/willst
Dies wird NICHT übereinstimmen:
- /debug3
Weitere Lektüre / Code:
- https://github.com/luislavena/radix/blob/master/src/radix/tree.cr - suchen private def find(path : String, result : Result, node : Node, first = false) - in Zeile 256 ist zum Zeitpunkt der Erstellung dieses Dokuments der Glob * definiert