我有一个 sinatra 应用程序,它主要使用 erb 作为模板,但我正在为需要在服务器端和客户端呈现的 html 块添加一些小胡子部分。我有一个“视图”目录,其中保存了所有模板,包括我添加的胡子模板。例如,结构看起来像这样:
views/
index.html.erb
_wingding.html.erb
_widget.html.mustache
假设我正在使用这个端点渲染 index.html.erb:
get '/' do
erb :index
end
在该模板中,我想渲染上述两个部分partial
渲染组件,所以这里的问题仍然存在。]。所以 index.html.erb 包含:
<%= partial :wingding %>
<%= partial :widget %>
erb 部分(wingding)渲染得很好,但 mustache 部分(小部件)却没有。它会导致应用程序抛出异常:
找不到模板引擎:小胡子
我在项目中包含了“小胡子”宝石。我试过'require mustache/sinatra'
了register Mustache::Sinatra
。这两种说法都有效,但没有解决上述问题。知道如何告诉 sinatra 关于小胡子的信息,以便它可以渲染小胡子部分吗?
我通过包含以下配置来设置我的视图目录:
configure do
set :views, File.join(File.dirname(__FILE__), 'views')
end
版本号:
- 西纳特拉 1.3.1
- 小胡子 0.99.4
- 红宝石 1.9.3