加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在Heroku上使用Ruby Rack设置静态网站的URL

发布时间:2020-12-16 19:54:32 所属栏目:百科 来源:网络整理
导读:我的网站是 here. 它曾经是一个Django动力的博客.但是我不再更新它,所以我只是想让它成为一个静态的HTML网站.我已经把它移动到Heroku与Ruby Rack. 但是,每个URL都解析到主页.这是因为我的config.ru文件: use Rack::Static,:urls = ["/media/images","/media
我的网站是 here.

它曾经是一个Django动力的博客.但是我不再更新它,所以我只是想让它成为一个静态的HTML网站.我已经把它移动到Heroku与Ruby Rack.

但是,每个URL都解析到主页.这是因为我的config.ru文件:

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

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

问题:有没有办法映射多个网址?例如foo.com/about映射到public / about / index.html,foo.com/posts/2012/oct/21/blog-postmaps to public / posts / 2012 / oct / 21 / blog-post / index.html

在这一点上,我甚至可以用手打字.

谢谢你的帮助.

解决方法

现在我发现最好的答案是:
use Rack::Static,:root => "public"

map "/" do
  run lambda { |env|
  [
    200,File::RDONLY)
  ]
}
end

map "/portfolio" do
  run lambda { |env|
  [
    200,File.open('public/portfolio/index.html',File::RDONLY)
  ]
}
end

并将每个URL映射到其相应的文件.乏味,但工作.另请参阅this question regarding URL variables的答案.无法让它为我工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读