Cómo utilizar las rutas de captura con Kemal
Para una aplicación Vue.js de una sola página - al menos en una URL SUB de nuestra página - queremos un catch all en nuestro servidor, que siempre rendirá la misma plantilla / salida HTML al navegador.
Kemal se basa internamente en Radix para el enrutamiento:
Radix tiene un carácter Catch All / Glob: *
Por lo tanto, si queremos crear una ruta de captura de todo, simplemente escribimos:
get "/debug/*" do |env|
render "src/views/hello.ecr"
fin
Esto coincidirá, por ejemplo:
- /debug
- /debug/
- /debug/cualquier cosa
- /debug/anything/as/deep/as/you/want
Esto NO coincidirá:
- /debug3
Otras lecturas / Código:
- https://github.com/luislavena/radix/blob/master/src/radix/tree.cr - buscar private def find(path : String, result : Result, node : Node, first = false) - en la línea 256 en el momento de la redacción, el glob * está definido