Ruby でカレントディレクトリを見れる簡単 HTTP サーバを立ち上げる

htmlを書いていて、ちょっとブラウザで見たいなーと思っても、(都合により / から始まってたりする)パスの書き方によってはファイルで開いても、画像や css/js が読み込めないことがあったりするし、できれば http サーバで閲覧したい。

でもいちいち apache の設定をするのも面倒だし、コンソールで rails みたいに script/server で立ち上げて、終わったらすぐ落としたい。

そんなスクリプト。

ruby 1.8 以上が入っていれば動く、と思う。

#!/usr/bin/env ruby
require 'webrick'
srv = WEBrick::HTTPServer.new(
  :BindAddress  => '127.0.0.1',
  :Port         => (port = ARGV[0].to_i) == 0 ? 3000 : port,
  :DocumentRoot => './'
)
trap(:INT){srv.shutdown}
srv.start

これに実行権限をつけて、パスの通った場所に好きな名前で置けば、実行したディレクトリをルートとしてサーバが立ち上がる。

ex)
vim ~/bin/rserver # ~/bin にはパスが通ってるとする。
chmod +x ~/bin/rserver
rserver # デフォルトでは 3000 (rails と一緒)
rserver 12345 # 渡した数字でポートを開く

デフォルトは rails と同じにしてみました。他のがよければ書き換えてください。

ポート番号だけ渡せるようにしました。

実行時のディレクトリをルートにしたかったのでパスも固定。

簡易サーバとしては必要十分すぎるくらい。

外部からの接続も許可したい場合は BindAddress に 0.0.0.0 を指定してください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする