Sinatra 一个简单的路由问题

wpdreammelody · 2014年11月12日 · 最后由 wpdreammelody 回复于 2014年11月12日 · 6935 次阅读

get '/', :host_name => /^admin./ do "管理员区域,无权进入!" end

get '/', :provides => 'html' do haml :index end

get '/', :provides => ['rss', 'atom', 'xml'] do builder :feed end

请问第一个 host_name 怎么才能匹配路由??看了好久没看懂

大约就是假设你基础的 host_name 是foobar.com,然后当GET 'admin.foobar.com'的时候就会匹配第一个…… 原则上GET 'admin.something.foobar.com'也是可以的……好久没用 Sinatra 了不知道是不是可以……但大约意思就是能够匹配后面这个正则的都进第一条路由。

#1 楼 @cassiuschen 个人理解是主机 host_name:yukangMacBook-Pro. 代码如下 require 'sinatra'

get '/', :host_name => "yukangMacBook-Pro" do "管理员区域,无权进入!" end 浏览器运行 http://localhost:4567/ 理论上会输出文本的,但是出错了 Internal server error 咋回事??

1 楼应该是正解。你得理解是错得

#3 楼 @jpman 那我代码如何写呢?

此问题已解决,host_name 对应 http 的 Host 不是主机名,同时主机名在 Http 接报是加端口号的,这里路由匹配时不需要端口的,即可成功,谢谢大家!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号