2011年10月21日
SinatraでStaticなHTMLファイルをrenderするには
目的
Sinatraで静的なhtmlファイルをrenderする方法です。
現状
Sinatraでは色々なビューテンプレートをレンダリングできます。Haml、Erb、Sass、Markdown、CoffeeScript…が対応されていますが、HTMLは対応してないようです。html :indexで書いてもダメですね。
解決方法
File.readでファイルとして読み込むことですね。Sinatraはデフォルトの設定だとpublicフォルダ内のものをassetsとするそうです。
でちょっとリファクタリングしてhtml :indexのシンタックスでいけるようにしました。
参考
http://stackoverflow.com/questions/2437390/serving-static-files-with-sinatra