1

いくつかの静的コンテンツを含むサイトがあります。いくつかのページ、css、javascript、および画像が含まれています。これを Heroku で無料でホストしたいと思います。Heroku の 1 つの Web dyno プランでできるようです。私の質問は、単一の Web dyno で静的コンテンツをホストするためのラックがドキュメントで提案されているのはなぜですか? Rails または Sinatra を 1 つの Web dyno で実行する際に遭遇する問題は何ですか? そして、ラックを使用するだけでこれらの問題を解決できますか?

4

2 に答える 2

1

RailsとSinatraはどちらもラックベースであるため、静的コンテンツ(真剣に.htmlページなど)がある場合は、必要最低限​​のラックを使用すると非常にうまく機能します。

サンプルリポジトリをhttps://github.com/jwo/rack-static-sampleに置きました

アイデアは、ラックアップファイル(config.ru)がパブリックディレクトリ内のファイルで応答するだけです(このバージョンは単一のindex.htmlです)

use Rack::Static, 
  :urls => ["/stylesheets", "/images"],
  :root => "public"

run lambda { |env|
  [
    200, 
    {
      'Content-Type'  => 'text/html', 
      'Cache-Control' => 'public, max-age=86400' 
    },
    File.open('public/index.html', File::RDONLY)
  ]
}
于 2012-06-25T15:15:41.287 に答える
1

問題の「最も簡単な」解決策であるため、お勧めします。そのコードに何もすることがないのに、何百/何千行ものコードを介して受信リクエストを処理するRailsまたはSinatraフレームワークを使用するのはなぜですか。

ただし、静的サイトをホストする場合は、Heroku よりも AWS S3、Github ページ、または Google ドライブのいずれかを強くお勧めします。Heroku の単一の dyno プランは無料かもしれませんが、それはしばらくするとアイドル状態になり、リソースを消費しないためです。アイドル状態の dyno への最初のリクエストには、さらに 5 ~ 15 秒かかる傾向があります。

于 2013-05-23T08:11:55.443 に答える