如何在Sinatra中为布局设置自定义目录?

时间:2013-08-18 19:34:05

标签: layout sinatra

我有一个有多种布局的Sinatra应用程序。我想将它们隔离到views中的自己的子目录中:

app.rb
views/
views/layouts/
views/layouts/default.haml
views/layouts/print.haml
views/layouts/mobile.haml

这是有效的,除了我必须使用每个渲染调用显式设置布局:

get '/' do
    haml :index, {:layout => :'layouts/default'}
end

有没有办法全局设置布局(例如,模块中的所有路径),或者告诉Sinatra在默认目录之外寻找布局?

1 个答案:

答案 0 :(得分:11)

需要更好的RTFM ...所以Sinatra本身没有特定的选项,但您可以为每个渲染引擎设置默认布局,例如HAML:

configure do
  set :haml, :layout => :'layouts/default'
end