【问题标题】:Rack app, redirect everything to root机架应用程序,将所有内容重定向到根目录
【发布时间】:2023-10-29 14:54:01
【问题描述】:

我刚刚将一个静态页面作为静态机架应用程序部署到 Heroku。我的 config.ru:

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

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

现在我想将所有请求重定向到这个静态 index.html 文件。任何想法如何实现这一目标?

【问题讨论】:

标签: ruby rack


【解决方案1】:

它实际上从一开始就有效。我只需要调整图像和 CSS 文件的路径。

【讨论】:

    【解决方案2】:

    如果您删除“使用”中间件 Rack::Static 的调用,所有请求都将呈现 index.html。虽然你可能不得不写

    File.open('public/index.html').read
    

    而不是

    File.open('public/index.html', File::RDONLY)
    

    【讨论】:

    • 如果我这样做,我的图像和 CSS 文件不会加载。
    • .. 很抱歉造成混乱,我认为这就是您想要的。
    最近更新 更多