回答:
最も簡単な方法(Aaron Patterson / n0kadaに感謝):
ruby -run -e httpd . -p 9090
別の、より複雑な方法:
ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 9090, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
最初のコマンドでさえ覚えるのが難しいので、私はこれを私の中に持っています.bashrc
:
function serve {
port="${1:-3000}"
ruby -run -e httpd . -p $port
}
デフォルトではポート3000で現在のディレクトリを提供しますが、ポートを指定することもできます。
~ $ 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 &
ますfg
。フォアグラウンドに戻す場合は、を使用します。
こんなにコンパクトなものは見たことがない
python3 -m http.server
オプションで末尾にポート番号を追加できます。
python3 -m http.server 9000
以下のようアーロン・パターソンは それをつぶやい今日、あなたが行うことができます。
ruby -run -e httpd . -p 5000
また、次を追加することで、バインドアドレスも設定できます。 -b 127.0.0.1
Ruby 1.9.2以降で動作します。
これはあなたが望むものかもしれませんし、そうでないかもしれませんが、私はそれを共有しなければならなかったのでとてもクールです。
私は過去にこれを使用してファイルシステムを提供しました。おそらくあなたはそれを修正するか、それがすべてに役立つことを受け入れることができます。
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}'
クリス
あなたはsinatra
gem を使用することができますが、それはあなたのためのディレクトリリストをしませんが、それはファイルを提供します:
require 'sinatra' # gem
set :public_folder, '.'
次に、それをファイルとして実行します。1.8の場合、最初にrequire 'rubygems'を追加します。
それを実行した後、URLは次のようになります
http:// localhost:4567 / file_name
「./file_name」ファイルに解決する必要があります。
ただし、http:// localhost:4567はディレクトリリストを「実行」しないため、機能しません。そこでの回避策については、https://stackoverflow.com/a/12115019/32453を参照してください。