Como utilizar todas as rotas com Kemal
Para uma aplicação Vue.js de página única - pelo menos em uma URL SUB de nossa página - queremos um catch all em nosso servidor, que irá sempre renderizar o mesmo template / saída HTML para o navegador.
Kemal é baseado internamente no Radix para roteamento:
O Radix tem um personagem Catch All / Glob: *
Por isso, se quisermos criar uma captura de todas as rotas, simplesmente escrevemos:
obter "/debug/*" do |env|
renderizar "src/views/hello.ecr".
final
Isto vai corresponder, por exemplo:
- /debug
- /debug/
- /debug/alguma coisa
- /debug/ qualquer coisa/as/deep/as/you/want
Isto NÃO vai corresponder:
- /debug3
Leitura adicional / Código:
- https://github.com/luislavena/radix/blob/master/src/radix/tree.cr - procurar private def find(path : String, result : Result, node : Node, first = false) - na linha 256 no momento da escrita, o glob * está definido