Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Sinatra Url'/';诠释_Ruby_Url_Sinatra - Fatal编程技术网

Ruby Sinatra Url'/';诠释

Ruby Sinatra Url'/';诠释,ruby,url,sinatra,Ruby,Url,Sinatra,我是一个ruby新手,已经尝试Sinatra很长一段时间了,有一件事我无法弄明白,为什么url中的“/”会产生如此大的差异。 我的意思是不是: get 'some_url' do end 及 应该指向同一条路线吗?为什么Sinatra认为这是不同的路线?我花了整整一个小时试图弄明白这一点。它们是不同的路线。第二个是带有目录扩展名('/')的URL;第一个是没有扩展名的URL。许多框架(如Rails)将两者解释为相同的路由,或附加“/”(例如,Django和Apache也可以配置为这样做),但

我是一个ruby新手,已经尝试Sinatra很长一段时间了,有一件事我无法弄明白,为什么url中的“/”会产生如此大的差异。 我的意思是不是:

get 'some_url' do 
end


应该指向同一条路线吗?为什么Sinatra认为这是不同的路线?我花了整整一个小时试图弄明白这一点。

它们是不同的路线。第二个是带有目录扩展名('/')的URL;第一个是没有扩展名的URL。许多框架(如Rails)将两者解释为相同的路由,或附加“/”(例如,Django和Apache也可以配置为这样做),但从技术上讲,它们是不同的URL。

根据RFC 2616和RFC 2396(RFC定义资源标识),这些URL不定义相同的资源。因此,西纳特拉对待他们不同。如果您想象路由返回带有相对链接的页面,这一点尤其重要。此链接

<a href="bar">click me</a>

或以上注释中提到的ReGEXP版本。

我不知道西纳特拉为什么认为它是不同的路由,但有简单的解决办法:<代码>获取%R{AsthURL\/}做< /COD>。令人惊讶的是,即使这样也能起作用:
get%r{some_url}do
。谢谢你的帮助
<a href="bar">click me</a>
get '/foo/?' do
  # ...
end