1

我有一个包含一些静态内容的网站。它包含一些页面、css、javascript 和图像。我想免费在 Heroku 上托管这个,我知道我可以用他们的一个 web dyno 计划来做。我的问题是,为什么他们的文档建议在单个网络测功机上托管静态内容的机架?在一个 web dyno 上运行 Rails 或 Sinatra 会遇到什么问题?使用 rack 是否只能以某种方式解决这些问题?

4

2 回答 2

1

推荐它,因为它是解决问题的“最简单”的解决方案。为什么要使用 Rails 或 Sinatra 框架,它们将通过数百/数千行代码处理传入的请求,如果该代码无事可做。

但是,如果您想托管一个静态站点,我强烈推荐 AWS S3、Github Pages 或 Google Drive over Heroku 中的任何一个。Heroku 上的单一测功机计划可能是免费的,但那是因为它会在一段时间后闲置,并且不会消耗他们的资源。对空闲测功机的第一个请求往往需要额外的 5-15 秒。

于 2013-05-23T08:11:55.443 回答
1

Rails 和 Sinatra 都是基于 rack 的,所以如果你只有静态内容(比如 .html 页面),那么使用准系统 rack 效果很好。

我在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 回答