2

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

我假设这只是产生新实例时的正常延迟。但是,有没有办法延迟尝试加载 Siantra 直到它的乘客满载?

4

4 回答 4

0

很久以前我也遇到过类似的问题。更新到较新的 Sinatra gem 帮助了我 - 你运行的是什么版本?

于 2010-09-13T21:46:02.677 回答
0

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

于 2010-01-23T00:08:04.960 回答
0

我最近在 Dreamhost 支持下接受了这个(不是很好的体验),最终他们建议将 gem 冻结到应用程序中。这充其量只是部分解决方案,因为它似乎适用于某些宝石而不适用于其他宝石。

代替

require 'sinatra'

我有:

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

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

mkdir vendor/gems
cd vendor/gems
gem unpack sinatra

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

于 2010-03-09T09:48:15.180 回答
0

我认为您可能需要添加 Gem.clear_paths!在那里

于 2010-08-31T17:47:58.150 回答