Обслуживание статических файлов в Синатре ... с красивыми маршрутами? - PullRequest
2 голосов
/ 30 апреля 2011

Предполагая, что у меня есть структура каталогов, похожая на:

path_to_file/one/index.html

Как настроить приложение sinatra на

mysite.com/path_to_file/one/

и есть ли ранее упомянутый файл для рендеринга? path_to_file всегда будет оставаться неизменным, но внутри него будут находиться разные папки (two, three и т. Д.).

Я пробовал следующее:

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

но затем, например, Файл javascript, связанный с index.html, не отображается правильно.

Ответы [ 2 ]

2 голосов
/ 01 мая 2011

Понятно!

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

Порядок важен, так как, если эти два метода меняются местами, get '/path_to_file/:number' становится надмножеством get '/path_to_file/:number/:file'.

0 голосов
/ 30 апреля 2011

Просто мысль, но вы можете настроить серверное программное обеспечение, Apache, nginx, независимо от того, что вы используете, для обслуживания .css и .js и файлов изображений из другого места.

...