Domanda

Sto cercando di scrivere un app Sinatra che verrà eseguito su un server condiviso passeggeri. Per ora, sarei felice solo ottenere un "ciao mondo", ma qualcosa non funziona perfettamente ragione. Ho:

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

e, naturalmente, tutte le librerie di supporto di cui ho bisogno per Sinatra sono sotto / vendor / Sinatra-lib. Posso rackup questo carico esatto sulla mia macchina locale, e funziona come un campione. Tuttavia, sulla macchina remota, ottengo risposte 0 byte per qualsiasi URL Ho provato a visitare. Si noti che ho una directory / pubblico, e posso visualizzare le pagine su quel successo, quindi credo Rack risponde ancora. Inoltre, posso eseguire un'applicazione Rack di base senza problemi, in modo da rack deve essere configurato correttamente (almeno, in modo corretto per l'esecuzione di applicazioni Rack).

A questo punto, l'unica cosa che mi viene in mente è quello di controllare la versione di rack, ecc, sul server remoto. Non ho il pieno controllo della scatola, in modo non ho davvero avere output del log da condividere. Posso provare a inseguire il basso, se è importante, ma spero qualcosa salterà fuori a qualcuno.

È stato utile?

Soluzione 2

Grazie a tutti per il gioco, si è rivelato essere un problema di dipendenza - il server che è stato distribuito a era in esecuzione una versione di rack che era troppo vecchio per sostenere Sinatra. Un sacco di altra roba buona a cui pensare, però.

Altri suggerimenti

Credo che il problema è che gli altri file Sinatra non si trova nella directory di carico. Provare per rinominare vendor/sinatra-lib in vendor/sinatra, e se ancora non funziona, provare ad aggiungere questo nella parte superiore del vostro config.ru, al posto di require 'vendor/...'

$: << 'vendor/sinatra'
require 'sinatra'

Una piccola nota a margine:. Non è necessario far passare l'estensione del file (.RB) per require, in modo che si possa fare require 'myapp' invece di require 'myapp.rb'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top