5

我有一个具有多种布局的 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 在哪里寻找默认目录之外的布局?

4

1 回答 1

13

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

configure do
  set :haml, :layout => :'layouts/default'
end
于 2013-08-18T19:59:50.570 回答