Frage Wie kann ich Sinatra eine Catchall-Standardroute geben?


Für eine kleine Entwicklerdokumentations-App möchte ich eine Sinatra-App einrichten, die nur HAML-Dateien bereitstellt. Nach Routen für CSS-Dateien und Bilder möchte ich eine Route, die versucht, eine HAML-Datei für jeden gewünschten Pfad zu laden.

Beispielsweise:

  • /index Ladungen views/index.hamlwenn es existiert
  • /this/page/might/exist Ladungen views/this/page/might/exist.hamlwenn es existiert

Wie würde ich diese Route angeben?


10
2018-05-29 20:13


Ursprung


Antworten:


Es sieht so aus:

get '/*' do
  viewname = params[:splat].first   # eg "some/path/here"

  if File.exist?("views/#{viewname}.haml")
    haml :"#{viewname}"

  else
    "Nopers, I can't find it."
  end
end

18
2018-05-29 20:20