在我的公共文件夹中,我有一个文件 index.html 。我希望能够使用url localhost:4567 来显示页面(不显示 localhost:4567 / index.html )
这是我目前的红宝石脚本:
require 'sinatra'
set :public_folder, 'public'
get '/' do
redirect '/index.html'
end
我尝试删除重定向语句,但网址仍然是 index.html 。
答案 0 :(得分:3)
您可以在此处使用send_file
:
get "/" do
send_file 'public/index.html'
end
您需要提供工作目录中文件的完整路径(即不仅仅是public
下的路径),这只适用于根网址,它不会提供index.html
一般的目录页面。如果您需要,可能需要在Sinatra前面设置一个单独的Web服务器并进行相应的配置。
答案 1 :(得分:0)
重定向背后的想法正是强制浏览器向您重定向的位置发出新请求。 由于您不想更改网址,因此您有两种可能的解决方案:
重写而不是重定向。 Sinatra本身并不提供此类功能,但您可以轻松使用机架中间件:
require 'rack/rewrite'
use Rack::Rewrite do
rewrite '/', '/index.html'
end
在询问根路径时提供 index.html 内容:
get '/' do
File.read("#{APP_ROOT}/public/index.html")
end