124 Stimmen

Wie kann ich Sinatra dazu bringen, die Datei nach jeder Änderung automatisch neu zu laden?

Ich verwende

# my_app.rb
load 'index.rb'

und starten Sie den Sever wie folgt

ruby my_app.rb

aber es lädt nie die Änderungen, die ich auf der Indexseite vorgenommen habe.
Habe ich hier etwas verpasst?

5voto

Ich mag das Shotgun-Gem. Wenn Sie eine modulare Sinatra-App verwenden und eine config.ru-Datei haben, ist das Ausführen einfach.

shotgun config.ru

Schauen Sie sich das Gem hier an. Es ist ziemlich einfach und keine Konfiguration erforderlich.

0 Stimmen

Die Schrotflinte ist schön, aber nicht mit Ruby 3+ kompatibel.

4voto

Vais Salikhov Punkte 61

Unter Windows verwende ich mein restart gem dafür:

restart ruby my_app.rb

oder mit rackup:

restart rackup

Siehe hier für weitere Informationen, ich hoffe, Sie finden es nützlich.

0 Stimmen

Die Dokumentation besagt, dass es auf Windows nicht funktioniert, ich habe es ausprobiert und es lädt Sinatra, aber es wird nicht neu geladen, wenn sich Änderungen ergeben.

1voto

jeffbyrnes Punkte 2102

Sie könnten Guard-Rack verwenden. Aus einem Artikel auf dblock.org:

Fügen Sie dies zu Ihrer Gemfile hinzu:

group :development do
  gem "guard"
  gem "guard-bundler"
  gem "guard-rack"

Erstellen Sie dann eine Guardfile im Stammverzeichnis Ihres Projekts mit diesem Inhalt:

guard 'bundler' do
  watch('Gemfile')
end

guard 'rack' do
  watch('Gemfile.lock')
  watch(%r{^(config|app|api)/.*})
end

Zuletzt führen Sie Guard aus, wie folgt: bundle exec guard, und rackup wird jedes Mal neu geladen.

0voto

three Punkte 7926

Wenn Sie nur Ihre Vorlagen ändern, wird Sinatra sie immer wieder rendern, wenn Sie Ihre Umgebung auf Entwicklung setzen:

ruby app.rb -e development

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X