我想写一个西纳特拉应用程序,将共享客运服务器上运行。现在,我很高兴刚开的“Hello World”的事,但工作不完全正确。我有:

config.ru

require 'vendor/sinatra-lib/sinatra.rb'
set :environment, :production
disable :run

require 'myapp.rb'
run Sinatra::Application

myapp.rb

get '/' do
  "Hello world!"
end

和当然所有支持库我需要屈正在/供应商/屈-LIB。我可以在我的本地机器上rackup这个确切的负荷,以及运行如飞。然而,在远程机器上,我得到了我尝试访问任何URL 0字节的响应。请注意,我有一个/ public目录,我可以成功地查看网页了这一点,所以我猜架仍在运行。另外,我可以运行而没有任何问题的基本机架的应用程序,所以机架必须正确地设置(至少,正确地运行机架应用)。

在这一点上,我能想到的唯一的事情就是检查机架等的版本,在远程服务器上。我没有完全控制箱,所以我真的没有日志输出份额。我可以尝试去追逐它,如果它是重要的,但我希望事情会在有人跳出来。

有帮助吗?

解决方案 2

感谢大家的演奏,原来是一个依赖问题 - 我是部署服务器正在运行一个版本机柜的年纪太大支持西纳特拉。好其他的东西很多思考,虽然。

其他提示

我认为问题在于,其他西纳特拉文件是不是在负载DIR。尝试vendor/sinatra-lib重命名为vendor/sinatra,如果仍然不工作,尝试添加该在你config.ru的顶部,在require 'vendor/...'代替

$: << 'vendor/sinatra'
require 'sinatra'

一个小侧面说明:你是不是需要通过文件扩展名(.RB)到require,所以你可以做的,而不是require 'myapp' require 'myapp.rb'

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top