題名通りで時々ローカルにあるファイルを file://
のfileプロトコルではなくてhttpでアクセスしたいってことがありました
こんな時はrubyだと library webrick (Ruby 2.4.0) を使うと実現できます
例えば下記のようなhtmlファイルがあったとして
index.html
<html> <body> <h1>hoge</h1> </body> </html>
ファイルと同じディレクトリにてhttp_server.rbなんてファイルを作成します
require 'webrick' WEBrick::HTTPServer.new(DocumentRoot: './', Port: '8080').start
あとはコマンドラインにて
$ ruby http_server.rb
でhttpサーバーが立ち上がったので http://localhost:8080
でアクセスすると先程のhtmlファイルが見られるようになります
とはいえhttpサーバーを立ち上げたい時に毎回 .rb
ファイルを作成しては面倒
ここで出て来るのがrubyコマンドの -e
オプションですね
この後にスクリプトを指定することでコマンドラインから実行することが出来ます
$ ruby -r webrick -e "WEBrick::HTTPServer.new(DocumentRoot: './', Port: '8080').start"
※ -r
を指定することでスクリプトの実行前にKernel.#require
でrequireしてくれます
これでコマンドラインから一発でhttpサーバーが立ち上げれるようになりました