Passenger を使用して共有ホスティング アカウントで実行している小さな Sinatra アプリがあります。しかし、しばらくして初めてアプリにアクセスすると、アプリケーションを起動できなかったという Passenger エラー ページが表示されます。通常、シナトラが見つからないためです。
これは、新しいインスタンスが生成されてからの通常の遅延であると想定しています。ただし、パッセンジャーが完全にロードされるまで Siantra のロードを遅らせる方法はありますか?
Gem.clear_pathsを追加する必要があると思います!そこで
GEMS_PATH
.htaccess ファイルに環境変数を設定することで問題を解決したようです。私は再びエラーに遭遇していません。まだ!
私はずっと前に同様の問題を抱えていました。新しい Sinatra gem への更新が役に立ちました - どのバージョンを実行していますか?
私は最近、Dreamhost のサポートでこれを取り上げました (素晴らしい経験ではありません)。これはせいぜい部分的な解決策です。
それ以外の
require 'sinatra'
私は持っている:
require 'vendor/gems/sinatra-0.9.4/lib/sinatra'
ジェムの凍結については別の場所で説明されていますが、簡単に説明します。
mkdir vendor/gems
cd vendor/gems
gem unpack sinatra
この変更の結果、読み込めないファイルとしてsinatraを引用する起動失敗画面が表示されることはありません。ただし、それ自体または他の宝石の一部を必要とする他のいくつかの宝石については、まだ取得しています。詳細についてはあまり明確ではありませんが、インストールされた宝石をハッキングして、すべての「必要」が「ベンダー」ライブラリから直接パスを使用するようにするというアイデアに取り組んでいます。