Sinatra on Passenger总是在第一次尝试失败

时间:2010-01-22 11:23:21

标签: sinatra passenger rack

我有一个小的Sinatra应用程序,我正在使用Passenger在共享主机帐户上运行。但是,一段时间后第一次访问该应用程序时,我收到一个Passenger错误页面,说明该应用程序无法启动。通常是因为找不到Sinatra。

我假设这只是生成新实例时的正常延迟。但是,有没有办法延迟尝试加载Siantra直到Passenger完全加载?

4 个答案:

答案 0 :(得分:0)

我似乎通过在.htaccess文件中设置GEMS_PATH环境变量来解决问题。我没有再遇到过这个错误。 YET!

答案 1 :(得分:0)

我最近使用Dreamhost支持(不是很棒的体验),最终他们建议将gems冻结到应用程序中。这至多是一个部分解决方案,因为它似乎适用于某些宝石,而不适用于其他宝石。

而不是

require 'sinatra'

我有:

require 'vendor/gems/sinatra-0.9.4/lib/sinatra'

冻结宝石在其他地方有所涉及,但简要说明:为此做准备,需要做

mkdir vendor/gems
cd vendor/gems
gem unpack sinatra

由于此次更改,我从不获取启动失败屏幕引用sinatra作为无法加载的文件。但是,对于其他需要自己或部分其他宝石的宝石,我仍然可以得到它。不太清楚细节,但我正在研究破解已安装的宝石的想法,以使每个“需求”直接使用我的“供应商”库中的路径。

答案 2 :(得分:0)

我想你可能需要添加Gem.clear_paths!在那里

答案 3 :(得分:0)

很久以前我有a similar problem。更新到更新的Sinatra gem帮助了我 - 你正在运行什么版本?