如何在Sinatra中制作布局模板?

时间:2010-11-16 00:56:36

标签: templates layout sinatra

我是Sinatra的新手,我无法弄清楚应用程序布局的位置。

我见过使用

的内联方法
# app code    
__END__

@@layout
  %html
    = yield

但我希望布局在其自己的.haml文件中。

布局文件应该命名为什么?它应放在什么目录中?

2 个答案:

答案 0 :(得分:26)

自动包装

要使每个视图默认包含在布局中,请在views/layout.haml中创建一个文件,并且您对haml :myview的调用将自动包含在此布局中。

跳过布局

如果您希望特定视图渲染不使用布局,请使用:

get '/' do
   # Other pages will use layout.haml, but not the main page
   haml :home, :layout => false
end

使用不同的布局

如果要使用公共布局以外的布局,请创建另一个文件(例如views/admin_layout.haml),然后将其作为选项传递:

get '/admin/create' do
   haml :create, :layout => :admin_layout
end

答案 1 :(得分:20)

如果您还没有,请创建一个名为sinatra脚本的文件夹...

views/

并将您的布局放在那里,调用您的布局

layout.haml

或您想要使用的任何扩展名(例如.erubis)。