我有一个小的Sinatra应用程序,我正在使用Passenger在共享主机帐户上运行。但是,一段时间后第一次访问该应用程序时,我收到一个Passenger错误页面,说明该应用程序无法启动。通常是因为找不到Sinatra。
我假设这只是生成新实例时的正常延迟。但是,有没有办法延迟尝试加载Siantra直到Passenger完全加载?
答案 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帮助了我 - 你正在运行什么版本?