reloading

___ answer2589164 ___

Das funktioniert:

%Vor%

Es kommt darauf an, wo Sie die require-Anweisung haben. Aber ich finde die folgende Lösung eleganter und robuster:

%Vor%     
___ answer2520334 ___

Ihr könnt sinatra-reloader ausprobieren, von dem bekannt ist, dass es unter Windows gut funktioniert (auch schneller als Schrotflinte) .

    
___ tag123ruby ___ Ruby ist eine multi-plattform Open-Source, dynamische objektorientierte interpretierte Sprache, erstellt von Yukihiro Matsumoto (Matz) im Jahr 1995. Die [Ruby] -Tag ist für Fragen im Zusammenhang mit der Ruby-Sprache, einschließlich seiner Syntax und seiner Bibliotheken . Fragen speziell zum Ruby-on-Rails-Framework sollten mit [ruby-on-rails], nicht [ruby] getaggt werden. Verwenden Sie dies nicht, um Ruby in der japanischen Sprache zu markieren. ___ answer1924518 ___

Funktioniert Shotgun nicht unter Windows?

Aus der README:

%Vor%

Dies ist eine automatische Neuladeversion des Rackup-Befehls, der mit ausgeliefert wird Gestell. Es kann als eine Alternative zu der bereitgestellten komplexen Nachladelogik verwendet werden durch Web-Frameworks oder in Umgebungen, die das Neuladen von Anwendungen nicht unterstützen.

Der Shotgun-Befehl startet einen der von Rack unterstützten Server (z. B. mongrel, webrick) und lauscht auf Anfragen, lädt aber keinen Teil des eigentlichen Anwendung. Jedes Mal, wenn eine Anfrage empfangen wird, lädt sie die Anwendung in Der untergeordnete Prozess verarbeitet die Anforderung und beendet den untergeordneten Prozess. Das Ergebnis ist ein sauberes, anwendungsweites Neuladen aller Quelldateien und Vorlagen auf jede Anfrage.

    
___ qstnhdr ___ Sinatra-App bei jeder Anfrage unter Windows neu laden ___ tag123rack ___ Rack bietet eine minimale Schnittstelle zwischen Webservern, die Ruby- und Ruby-Frameworks unterstützen. ___ answer3447533 ___

Sie können auch einen Trinidad JRuby Rack-Container verwenden, der auf Tomcat basiert. Nach meiner Erfahrung ändert sich das Neuladen standardmäßig, ohne dass die Quelldateien geändert werden müssen. Verdammt schnell auch. Natürlich ist es nicht gut, wenn Sie native Bibliotheken verwenden, aber wenn Sie Windows einsetzen, sind Sie wahrscheinlich daran gewöhnt, einen reinen Rubin-Ansatz zu wählen.

Die Syntax ist genauso einfach wie die Thin-Methode:

%Vor%

Es gibt kein Java-spezifisches Yak-Shaving (d. h. das Erstellen von web.xml oder WARen Sie Ihre Ruby-Anwendung), und das Gem ist einfach zu installieren.

    
___ tag123sinatra ___ Sinatra ist eine Domain Specific Language (DSL) zum schnellen Erstellen von Web-Anwendungen in Ruby mit minimalem Aufwand. Es ist eine Alternative zu anderen Ruby Web Application Frameworks wie Ruby on Rails, Nitro, Camping und Rango. ___ tag123Laden ___ Hilf uns dabei, dieses Wiki zu bearbeiten ___ qstntxt ___

Ich habe %code% gemäß diesem Thread

eingerichtet %Vor%

Wird mit dem Thin via %code% ausgeführt, lädt jedoch nur neu hinzugefügte Routen neu. Wenn ich die bereits bestehende Route ändere, wird immer noch der alte Code ausgeführt.

Wenn ich eine neue Route hinzufüge, wird sie neu geladen, so dass sie zugänglich ist, aber nichts anderes neu geladen wird.

Zum Beispiel, wenn ich Routen zu

ändere %Vor%

Than %code% würde immer noch %code% bedienen, obwohl es sich geändert hat, aber %code% würde %code% korrekt neu laden und bereitstellen.

Ist das normal, oder fehlt mir etwas? Ich würde erwarten, dass die gesamte Quelldatei neu geladen wird. Der einzige Weg, den ich mir gerade vorstellen kann, ist der Neustart des gesamten Webservers, wenn sich das Dateisystem ändert.

Ich verwende Windows Vista x64, daher kann ich shotgun wegen %code% nicht verwenden.

    
___
4
Antworten

Sinatra-App bei jeder Anfrage unter Windows neu laden

Ich habe Rack::Reload gemäß diesem Thread eingerichtet %Vor% Wird mit dem Thin via thin start -R config.ru ausgeführt, lädt jedoch nur neu hinzugefügte Routen neu. Wenn ich die bereits bestehende Route ändere, wird immer noch der alt...
17.12.2009, 12:08