Ihr Problem ist mit der Linie:
%Vor% Das ist Sinatras Methode run
, die Sinatra anweist, einen eigenen Webserver zu starten, der standardmäßig auf Port 4567 läuft. Dies ist in Ihrer config.ru
-Datei, aber config.ru
ist nur Ruby, also wird diese Zeile so ausgeführt, als wäre sie in einer anderen .rb
-Datei. Deshalb sehen Sie, dass Sinatra an diesem Port startet.
Wenn Sie diesen Server mit STRG-C stoppen, versucht Thin, die Datei config.ru
weiter zu laden, um festzustellen, welche App ausgeführt werden soll. Sie geben in Ihrem config.ru
keine App an. Sie sehen also etwa Folgendes:
Dieser Fehler sagt Ihnen einfach, dass Sie keine App angegeben haben, die in Ihrer Konfigurationsdatei ausgeführt werden soll.
Verwenden Sie anstelle von SingingRain.run!
:
run
ist eine Rack-Methode, die angibt, welche App ausgeführt werden soll. Sie könnten auch run SingingRain.new
ausführen - Sinatra ergreift Schritte, um es Ihnen zu ermöglichen, nur die Klasse selbst oder eine Instanz zu verwenden.
Die Ausgabe zu diesem sollte jetzt nur sein:
%Vor% Sie erhalten die Meldung == Sinatra/1.3.2 has taken the stage on 4567 for production with backup from Thin
nicht, da Sinatra seinen eingebauten Server nicht ausführt, sondern nur Ihren Thin-Server, wie Sie ihn konfiguriert haben.
in Ihrer config.ru-Erweiterung
set: port = & gt; 8000
Ich würde auch sehr empfehlen, Sinatra mit etwas wie passagier + nginx zu verwenden, was die Bereitstellung in der Produktion zum Kinderspiel macht. Aber Sie müssen sich darüber keine Gedanken machen, wenn Sie auf Heroku bereitstellen.