【发布时间】:2011-05-10 13:42:03
【问题描述】:
我是 Sinatra 的新手,我不知道在哪里放置我的应用程序布局。
我见过使用
的内联方法# app code
__END__
@@layout
%html
= yield
但我希望布局在它自己的 .haml 文件中。
布局文件应该怎么命名?应该放在什么目录下?
【问题讨论】:
我是 Sinatra 的新手,我不知道在哪里放置我的应用程序布局。
我见过使用
的内联方法# app code
__END__
@@layout
%html
= yield
但我希望布局在它自己的 .haml 文件中。
布局文件应该怎么命名?应该放在什么目录下?
【问题讨论】:
如果您还没有创建一个文件夹,您的 sinatra 脚本所在的文件夹名为...
views/
把你的布局放在那里,调用你的布局
layout.haml
或您想使用的任何扩展名(例如.erubis)。
【讨论】:
要使每个视图默认包装在布局中,请在 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
【讨论】:
undefined local variable or method `layout' for ,请帮助我
admin_layout,请看stackoverflow.com/questions/11190208/…
:layout => :"admin-layout",FWIW if 应该可以工作,但最好简单地使用一个易于表示为符号文字的名称。我已经更新了我的答案。