Herokuで静的なWebページを公開する方法です。
HerokuってApplicationServerのPaasなんで、通常、アプリケーションのルートにindex.htmlをおいてあげたとしてもクライアントから直接Getすることはできません。
なんでRubyでサーブレットを書いて(Rubyでもサーブレットっていうのかわからないのですが)公開する方法がStatic Sites with Ruby on Heroku/Bambooに記載されています。
実際にやってみました。
sample
|-config.ru
|
|-public
|-index.html
|-lib
|-sample.js
use Rack::Static に登録されていないディレクトリの静的ファイルにアクセスしようとするとエラーが発生すると思います。
私の試した限りですが、「lib」を登録せずに実行した場合、sample.jsの先頭でエラーが発生し、読み込まれません。
use Rack::Static,
:urls => ["/lib"],
:root => "public"
run lambda { |env|
[
200,
{
'Content-Type' => 'text/html',
'Cache-Control' => 'public, max-age=86400'
},
File.open('public/index.html', File::RDONLY)
]
}
今回は、Rubyをアプリケーションとして使用しますので、cedarスタックではなく、Bambooスタックを使用してください。cedarスタックではRubyは動作しません。
//アプリケーションを作成する際はBanbooスタックに作成してください。
$heroku create sampleApp
後は、普通通り、アプリケーションのgitリポジトリにgit pushしてあげるだけです。