我有一个小应用程序,文件夹结构如此
MyApp
+--public
+--javascripts
+--stylesheets
+--specs
+--views
sinatra文档指定使用帮助程序的find_templates函数来更改不同引擎的查找路径。
set :views, :coffee => 'public/javascripts', :sass => 'public/stylesheets', :default => 'views'
helpers do
def find_template(views, name, engine, &block)
_, folder = views.detect { |k,v| engine == Tilt[k] }
folder ||= views[:default]
super(folder, name, engine, &block)
end
end
这是从coffeescript和sass的views文件夹中更改默认查找路径的唯一方法吗?
答案 0 :(得分:0)
public
不应包含任何视图,它应包含静态文件。如果它们是静态文件,只需将它们作为静态文件提供给您的Web服务器,无需获取Sinatra,更不用说任何模板引擎了。如果您有充分的理由({访问限制,依赖于用户配置的文件选择等),请使用static_file
服务。
除此之外,我不知道Tilt / Sinatra是否支持不同模板引擎的不同模板目录。但是,您可以将子目录指定为模板名称的一部分,例如scss :'scss/style'
。这些将是views
目录的子目录,顺便提一下,您可以根据Sinatra文档更改set :views
。