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

mač*_*ček 20 layout templates sinatra

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

我见过使用的内联方法

# app code    
__END__

@@layout
  %html
    = yield
Run Code Online (Sandbox Code Playgroud)

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

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

Phr*_*ogz 27

自动包装

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

跳过布局

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

get '/' do
   # Other pages will use layout.haml, but not the main page
   haml :home, :layout => false
end
Run Code Online (Sandbox Code Playgroud)

使用不同的布局

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

get '/admin/create' do
   haml :create, :layout => :admin_layout
end
Run Code Online (Sandbox Code Playgroud)


oco*_*odo 20

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

views/
Run Code Online (Sandbox Code Playgroud)

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

layout.haml
Run Code Online (Sandbox Code Playgroud)

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