Pregunta

Estoy intentando escribir una aplicación Sinatra que se ejecutará en un servidor compartido de pasajeros. Por ahora, me gustaría ser feliz sólo conseguir un "hola mundo", pero algo no está funcionando del todo bien. Tengo:

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

y por supuesto todas las librerías de apoyo que necesito para Sinatra están bajo / vendedor / Sinatra-lib. Puedo rackup esta carga exacta en mi máquina local, y funciona como un campeón. Sin embargo, en la máquina remota, consigo respuestas 0 bytes para cualquier URL que intenta visitar. Tenga en cuenta que tengo un directorio / pública, y puedo ver las páginas de ese éxito, así que supongo rack aún responde. También, se puede ejecutar una aplicación básica en rack sin ningún problema, por lo estante debe estar configurado correctamente (al menos, correctamente para ejecutar aplicaciones de rack).

En este punto, lo único que puedo pensar es comprobar la versión de rack, etc, en el servidor remoto. No tener un control total sobre la caja, así que realmente no tienen salida del registro de acción. Puedo tratar de perseguir abajo, si es importante, pero espero que algo va a saltar sobre alguien.

¿Fue útil?

Solución 2

Gracias a todos por juego, resultó ser un problema de dependencias - el servidor que se desplegó a se ejecuta una versión de rack que era demasiado viejo para apoyar Sinatra. Un montón de buena otras cosas en que pensar, sin embargo.

Otros consejos

Creo que el problema es que los otros archivos Sinatra no está en el directorio de carga. Trate de cambiar el nombre de vendor/sinatra-lib en vendor/sinatra, y si aún así no funciona, trate de añadir esto en la parte superior de su config.ru, en lugar de require 'vendor/...'

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

Una nota al margen pequeño:. No están obligados a pasar la extensión del archivo (.rb) a require, por lo que podría hacer en lugar de require 'myapp' require 'myapp.rb'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top