我正在尝试向我的data应用程序添加一条路由,该路由将从webhook接收数据。
我尝试使用解决方案样本,虽然这确实创建了路由,但它打破了‘/ here’的仪表盘。
有什么想法吗?
下面是我的lib/app.rb:
require 'sinatra/base'
class App < Sinatra::Base
get '/callback' do
"Callback route."
end
end这是我的config.ru:
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是最后一个,仪表板可以工作。但是当其中一个有效的时候,另一个就不行了
发布于 2017-09-06 02:56:18
你可以在你的config.ru中运行不同的应用。
在您的config.ru中,替换
map Sinatra::Application.assets_prefix do
run Sinatra::Application.sprockets
end
run Sinatra::Application
run App使用
map('/') { run App }
map('/sample') { run Sinatra::Application }
map(Sinatra::Application.assets_prefix) { run Sinatra::Application.sprockets }重要的是要注意,通过这样做,rack将处理路由前缀。因此,如果您导航到/sample,在该路由下运行的sinatra应用程序将看到/。
config.ru实际上是在Rack::Builder上下文中运行的。所以上面的代码等同于
apps = Rack::Builder.new do
map('/') { run App }
map('/sample') { run Sinatra::Application }
map(Sinatra::Application.assets_prefix) { run Sinatra::Application.sprockets }
end
run appshttps://stackoverflow.com/questions/45945810
复制相似问题