下面的代碼片段是我如何處理我的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