2

我已按照 Heroku 指南使用 Ruby Rack ( https://devcenter.heroku.com/articles/static-sites-ruby ) 部署静态文件,但我无法访问\publicindex.html. 即,localhost:9292/test.html仍然映射到index.html。(我所有的样式和 js 文件都正确服务)。

下面是我的config.ru文件。我知道出了什么问题,但不确定有效的解决方案?

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

run lambda { |env|   [
    200, 
    {
      'Content-Type'  => 'text/html', 
      'Cache-Control' => 'public, max-age=86400' 
    },
    File.open('public/index.html', File::RDONLY)   ] }
4

2 回答 2

3

对于您的config.ru文件,请尝试:

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

run Rack::File.new("public")

您还可以替换最后一行run Rack::Directory.new("public"),它将提供您的所有文件,但如果有人转到目录的 url(如根目录),则会提供类似文件浏览器的界面

于 2013-06-19T14:04:57.140 回答
0

我没有 Ruby 经验,我发现这个样板项目在尝试将静态网站部署到 Heroku 时很有帮助:

heroku-静态站点

Gemfile特别是,请确保Gemfile.lock除了config.ru.

作者的项目结构将所有内容都托管在根目录中,但您可以轻松地将所有内容移动到public/并更正config.ru@looby 建议的内容。

于 2014-02-06T21:08:06.770 回答