Come usare le rotte catch all con Kemal
Per un'applicazione Vue.js a pagina singola - almeno su un URL SUB della nostra pagina - vogliamo un catch all sul nostro server, che renderà sempre lo stesso template / output HTML al browser.
Kemal è internamente basato su Radix per il routing:
Radix ha un carattere Catch All / Glob: *
Pertanto, se vogliamo creare un percorso catch all, scriviamo semplicemente:
ottenere "/debug/*" do |env|
rendere "src/views/hello.ecr"
fine
Questo corrisponderà, per esempio:
- /debug
- /debug/
- /debug/qualsiasi cosa
- /debug/qualsiasi cosa/quanto/quanto/profondo/quando/volete
Questo NON corrisponderà:
- /debug3
Ulteriori letture / Codice:
- https://github.com/luislavena/radix/blob/master/src/radix/tree.cr - cercare private def find(path : String, result : Result, node : Node, first = false) - nella linea 256 al momento della scrittura, il glob * è definito