下面的代码片段是我如何处理我的Sinatra应用程序中的路线。我所有的观点都包含在我的views/pages目录中。这些只是代表静态html的哈姆文件,带有一些javascript。以这种方式加载视图是否有负面影响?如果该页面不存在,则会抛出文件未找到错误。我担心这是某种攻击媒介。查看路线在Sinatra
error RuntimeError do
status 500
"A RuntimeError occured"
end
get '/:page' do
begin
haml "pages/#{params['page']}".to_sym
rescue Errno::ENOENT
status 404
"404"
end
end
我计划导出为静态HTML,我使用Sinatra :: Export,这不适用于上面的代码示例。我将不得不遍历我的网页目录中的所有文件,调用get“/#{filebasename}”并调用haml“pages /#{filebasename}”我也不认为渲染HAML在这实例,尤其是考虑到可读性和可维护性的折衷。 静态站点生成器并不能真正满足我的需求,而且通常不够灵活。 – user1152226 2015-04-05 22:23:20
@ user1152226静态网站生成器完全符合您所说的目标 - 生成并提供静态文件。灵活性... YAGNI,无论如何,这些文件都在haml中,如果你以后需要的话,这不会是一个巨大的变化。至于*有*循环遍历目录中的所有文件......一个班轮。你甚至可以使用上面所写的内容,并将其写为卷曲请求以避免静态站点生成器。据我所知,你获得绝对零的选择你有。 – iain 2015-04-05 22:59:57