Comment utiliser les routes "catch all" avec Kemal ?
Pour une application Vue.js à page unique - au moins sur une URL SUB de notre page - nous voulons un "catch all" sur notre serveur, qui rendra toujours le même modèle / sortie HTML au navigateur.
Kemal est basé en interne sur Radix pour le routage :
Radix a un caractère Catch All / Glob : *
Par conséquent, si nous voulons créer une route "catch all", il nous suffit d'écrire :
get "/debug/*" do |env|
render "src/views/hello.ecr" (en anglais)
fin
Cela correspondra, par exemple, à
- /débogage
- /debug/
- /debug/tout
- /debug/tout/aussi/profond/que/vous/voulez
Cela ne correspondra pas :
- /debug3
Autres lectures / Code :
- https://github.com/luislavena/radix/blob/master/src/radix/tree.cr - chercher private def find(path : String, result : Result, node : Node, first = false) - à la ligne 256 au moment de l'écriture, le glob * est défini