質問

私は共有旅客サーバー上で実行されますシナトラアプリを記述しようとしています。今のところ、私はただの「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

と私はシナトラのために必要なコースすべてのサポートのlibsの/ベンダー/シナトラ-libの下にあります。私は私のローカルマシン上でこの正確な負荷をrackupことができ、それはチャンピオンのように実行します。ただし、リモートマシン上で、私は私が訪問しようとする任意のURLのための0バイトの応答を取得します。私は/ publicディレクトリを持っている、と私はラックがまだ応答していると思いますので、私は、成功したことの外にページを表示できることに注意してください。ラックは、(少なくとも、正しくラックのアプリを実行するための)を正しく設定する必要がありますので、また、私は、何の問題もなく、基本的なラックアプリを実行することができます。

この時点で、私は考えることができる唯一のことは、リモートサーバー上など、ラックのバージョンを確認することです。私は本当に共有にログ出力を持っていないので、私は、ボックスを完全に制御を持っていません。私はそれが重要だ場合は、それを追いかけることを試みることができますが、私は何かが誰かに飛び出します願っています。

役に立ちましたか?

解決 2

すべての演奏をありがとう、依存関係の問題であることが判明 - 私はにデプロイされたサーバーは、シナトラをサポートするには余りにも古かったラックのバージョンを実行していました。考えるための良い他のものがたくさん、しかします。

他のヒント

私はこの問題は、他のシナトラのファイルがロードディレクトリではないことだと思います。 vendor/sinatra-lib

の代わりに、あなたのvendor/sinatraの上でこれを追加しようと、config.rurequire 'vendor/...'の名前を変更しようとすると、それはまだ仕事をしない場合
$: << 'vendor/sinatra'
require 'sinatra'

少しサイドノート:あなたがあなたの代わりにrequirerequire 'myapp'を行うことができますので、require 'myapp.rb'にファイル拡張子(.RB)に合格する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top