如何从另一个文件夹获取页面而不是视图?

时间:2012-04-27 12:29:26

标签: ruby sinatra

在Sinatra脚本中,我有代码检查文件是否存在,然后使用正确的呈现显示它。这些文件位于\views

get '/:page' do
  if File.exists?('views/'+params[:page]+'.slim')
    slim params[:page].to_sym
  else
    raise error(404) 
  end   
end

我想要\public中的这些文件。请问我该怎么做?:

get '/:page' do
  if File.exists?('public/'+params[:page]+'.slim')
    slim "/public/"+params[:page].to_sym #=> error
  else
    raise error(404) 
  end   
end

2 个答案:

答案 0 :(得分:0)

没关系,我找到了它:

slim "../public/#{params[:page]}".to_sym

答案 1 :(得分:0)

查看Sinatra文档:http://www.sinatrarb.com/configuration.html

在那里,你会注意到你可以设置:views属性,它应该处理你需要的东西。他们的示例将其设置为app根目录中的templates/目录:

set :views, Proc.new { File.join(root, "templates") }