在Sinatra中提供静态文件.有美丽的路线



假设我的目录结构类似于:

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

,但随后从index.html链接的javascript文件不正确渲染。

明白了!

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'的超集。

只是一个想法,但是您可以设置您的服务器软件,Apache, nginx,无论您使用的是什么,从不同的位置提供.css.js和图像文件。

相关内容

  • 没有找到相关文章

最新更新