Question

En supposant que j'ai une structure de répertoire similaire à:

path_to_file/one/index.html

Comment puis-je mettre mon application sinatra être routé

mysite.com/path_to_file/one/

et que le fichier a été mentionné précédemment à rendre? path_to_file restera toujours le même, mais il y aura des dossiers différents (two, three, etc.) à l'intérieur.

J'ai essayé ce qui suit:

get '/path_to_file/:number' do
  File.read(File.join('path_to_file', "#{params[:number]}", "index.html"))
end

mais alors l'exemple fichier javascript lié à partir index.html ne rend pas correctement.

Était-ce utile?

La solution

Je l'ai!

get '/path_to_file/:number/:file' do
  File.read(File.join('path_to_file', "#{params[:number]}", "#{params[:file]}"))
end

get '/path_to_file/:number' do
  File.read(File.join('path_to_file', "#{params[:number]}", "index.html"))
end

L'ordre est important, car si ces deux méthodes sont inversées, get '/path_to_file/:number' devient une surcouche de get '/path_to_file/:number/:file'.

Autres conseils

Juste une pensée, mais vous pouvez configurer votre logiciel serveur, Apache, nginx, quoi que ce soit que vous utilisez, pour servir .css et les fichiers .js et image à partir d'un autre endroit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top