我有 Sinatra 基础应用程序,例如:
class MyApp < Sinatra::Base
get '/' do
..
end
get '/login' do
..
end
end
和一些子模块,如
class Protected < MyApp
before '/*' do
redirect('/login') unless logged_in
end
get '/list' do
...
end
end
我的 config.ru 如下所示
map "/" do
run MyApp
end
map "/protected" do
run Protected
end
尝试访问时出现重定向循环,/protected/list
因为它尝试从主应用程序重定向到/protected/login而不是/login 。我怎样才能强迫它做正确的重定向?我知道我可以使用redirect to('../login')
,但它似乎很糟糕。