【问题标题】:Sinatra gives me "not found" all the time instead of my pageSinatra 一直给我“未找到”而不是我的页面
【发布时间】:2012-10-25 23:28:52
【问题描述】:

相当简单的 Sinatra 代码

  get '/Accept/:value' do
    "Hello world"
  end

   not_found do
    "not found"
   end

当我转到http://localhost:9292/Accept/?SomeKey=somevalue&Somekey2=someValue时,Sinatra 总是返回“未找到”给我。

我做错了什么?

【问题讨论】:

  • SomeKey=somevalue&Somekey2=someValue 它将出现在params 中,如果没有错,请仅使用/Accepts/ 而不是/Accept/:value

标签: ruby routing sinatra rack


【解决方案1】:

Sinatra 将您的 url 视为 /Accept/,因为您紧跟最后一个斜杠,? 表示查询字符串的开始。

http://localhost:9292/Accept/foo?SomeKey=somevalue&Somekey2=someValue 这样的网址会触发get 操作,将foo 传递为params[:value]

【讨论】:

  • 我的网址http://localhost:9292/Accept/?SomeKey=somevalue&Somekey2=someValue 之前没有 foo 吗?我不能改变它(这是一个回调网址),所以我不能使用你的方法。
猜你喜欢
  • 2019-10-24
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 2023-01-18
  • 2011-07-08
相关资源
最近更新 更多