首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将路由添加到dashing应用程序?

将路由添加到dashing应用程序?
EN

Stack Overflow用户
提问于 2017-08-30 02:14:43
回答 1查看 405关注 0票数 0

我正在尝试向我的data应用程序添加一条路由,该路由将从webhook接收数据。

我尝试使用解决方案样本,虽然这确实创建了路由,但它打破了‘/ here’的仪表盘。

有什么想法吗?

下面是我的lib/app.rb:

代码语言:javascript
复制
require 'sinatra/base'

class App < Sinatra::Base

  get '/callback' do
    "Callback route."
  end

end

这是我的config.ru:

代码语言:javascript
复制
require 'dashing'

configure do
  set :auth_token, 'YOUR_AUTH_TOKEN'

  helpers do
    def protected!
      # Put any authentication code you want in here.
      # This method is run before accessing any resource.
    end
  end
end

map Sinatra::Application.assets_prefix do
  run Sinatra::Application.sprockets
end

run Sinatra::Application
run App

更新:

我将路由名称更改为模糊的名称(这样挂载肯定不会使用它)。看起来我最后放的那个run命令是生效的。如果run App是最后一个,那么路由可以工作,如果run Sinatra::Application是最后一个,仪表板可以工作。但是当其中一个有效的时候,另一个就不行了

EN

回答 1

Stack Overflow用户

发布于 2017-09-06 02:56:18

你可以在你的config.ru中运行不同的应用。

在您的config.ru中,替换

代码语言:javascript
复制
map Sinatra::Application.assets_prefix do
  run Sinatra::Application.sprockets
end

run Sinatra::Application
run App

使用

代码语言:javascript
复制
map('/') { run App }
map('/sample') { run Sinatra::Application }
map(Sinatra::Application.assets_prefix) { run Sinatra::Application.sprockets }

重要的是要注意,通过这样做,rack将处理路由前缀。因此,如果您导航到/sample,在该路由下运行的sinatra应用程序将看到/

config.ru实际上是在Rack::Builder上下文中运行的。所以上面的代码等同于

代码语言:javascript
复制
apps = Rack::Builder.new do 
     map('/') { run App }
     map('/sample') { run Sinatra::Application }
     map(Sinatra::Application.assets_prefix) { run Sinatra::Application.sprockets }
end
run apps
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45945810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档