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 了不知道是不是可以……但大约意思就是能够匹配后面这个正则的都进第一条路由。
foobar.com
GET 'admin.foobar.com'
GET 'admin.something.foobar.com'
#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 接报是加端口号的,这里路由匹配时不需要端口的,即可成功,谢谢大家!