Antworten:
Einfachster Weg möglich (danke Aaron Patterson / n0kada):
ruby -run -e httpd . -p 9090
Alternativer, komplexerer Weg:
ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 9090, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
Selbst der erste Befehl ist schwer zu merken, deshalb habe ich diesen in meinem .bashrc
:
function serve {
port="${1:-3000}"
ruby -run -e httpd . -p $port
}
Es dient standardmäßig dem aktuellen Verzeichnis auf Port 3000 , Sie können jedoch auch den Port angeben:
~ $ cd tmp
~/tmp $ serve # ~/tmp served on port 3000
~/tmp $ cd ../www
~/www $ serve 5000 # ~/www served on port 5000
ruby -run -e httpd . -p 9090
unter ruby-doc.org/stdlib-2.0.0/libdoc/un/rdoc/index.html . Es führt die httpd-Methode aus der un
Ruby-Standardbibliothek aus und erfordert daher un.
ruby -run -e httpd . -p 9090 &
Wenn Sie es wieder in den Vordergrund stellen möchten, verwenden Sie fg
.
Ich habe noch nie etwas so Kompaktes gesehen wie
python3 -m http.server
Optional können Sie am Ende eine Portnummer hinzufügen:
python3 -m http.server 9000
Wie Aaron Patterson heute getwittert hat, können Sie Folgendes tun:
ruby -run -e httpd . -p 5000
Sie können die Bindungsadresse auch durch Hinzufügen festlegen -b 127.0.0.1
Funktioniert mit Ruby 1.9.2 und höher.
require 'webrick'
include WEBrick
s = HTTPServer.new(:Port => 9090, :DocumentRoot => Dir::pwd)
trap("INT"){ s.shutdown }
s.start
Verwenden Sie Ruby Gem Serve .
Führen Sie die Installation auf Ihrem System aus gem install serve
.
Um ein Verzeichnis bereitzustellen, legen Sie einfach eine CD in das Verzeichnis und führen Sie es aus serve
.
Der Standardport ist 4000. Er kann auch ERB, HAML, Slim und SASS bedienen.
Das mag sein oder auch nicht, was du willst, aber es ist so cool, dass ich es einfach teilen musste.
Ich habe dies in der Vergangenheit verwendet, um das Dateisystem zu bedienen. Vielleicht könnten Sie es ändern oder einfach akzeptieren, dass es alles dient.
ruby -rsocket -e 's=TCPServer.new(5**5);loop{_=s.accept;_<<"HTTP/1.0 200 OK\r\n\r\n#{File.read(_.gets.split[1])rescue nil}";_.close}'
Ich habe es hier gefunden
Chris
Sie können das sinatra
Juwel verwenden, obwohl es keine Verzeichnisliste für Sie erstellt, sondern Dateien bereitstellt:
require 'sinatra' # gem
set :public_folder, '.'
Führen Sie das dann als Datei aus, wenn in 1.8 add 'rubygems' zuerst oben benötigt wird.
Nach dem Ausführen ist die URL wie
http: // localhost: 4567 / Dateiname
sollte in die Datei "./file_name" aufgelöst werden.
http: // localhost: 4567 funktioniert jedoch nicht, da es keine Verzeichnislisten "ausführt". Eine Problemumgehung finden Sie unter https://stackoverflow.com/a/12115019/32453 .