开发者

Fire up a web browser for a folder?

Is there a开发者_如何学JAVAn easy way to fire up a web browser for a folder?

eg.

I am in a folder that contains a website (index.html and other files) and I want to browse the site through a browser. Is there a gem that I just launch to make this folder browsable?

In this way I don't have to install nginx just for a specific folder. And when you install nginx you have to bother with configuration files and so on.

Kinda how Rails does it with:

rails server


Yes, there is... Throw the following in a file called webserver:

#!/usr/bin/env ruby
require 'webrick'
include WEBrick

server = HTTPServer.new(:Port => 3000, :DocumentRoot => Dir::pwd)

trap("INT"){ server.shutdown }
server.start

Then, perform the following (This assumes Mac OSX):

$ sudo chmod 755 webserver
$ sudo chown root:wheel webserver
$ sudo cp webserver /usr/local/bin/webserver (or somewhere in your path)

Now, just run webserver from the directory you want to use as the document root. A webserver will now be running on localhost:3000.

Hope this helps!

UPDATE

I just remembered after reading a post on Phusion Passenger 3.0 progress that there will be a passenger lite option...


Easiest way I've found is this little Python one-liner:

2.x: python -m SimpleHTTPServer

3.x: python -m http.server 8080

Unless you want to execute Ruby dynamically, of course. But that wasn't explicit in your question. Only static HTML.


The webbrick example works great, thanks to Brian. However, I just wanted to follow up on his update.

Assuming you have a working ruby and rubygems installed:

gem install passenger

put all files in a subdirectory called public

example project dir:

.
├── any
│   ├── old crap
│   └── that will not be on the website
└── public
    ├── favicon.ico
    ├── images
    │   ├── ajax-loader-large.gif
    │   ├── bg.jpg
    │   ├── bg_home.jpg
    │   ├── bg_nav.gif
    ├── index.html
    ├── javascripts
    │   ├── jquery.liveSearch.js
    ├── robots.txt
    └── stylesheets
        ├── all.css

Then run passenger start

The first time it will install a bunch of things (including nginx, but you won't have to worry about configuring it), but it should work faster after that.


And, if you have PHP >= 5.4.0, you can:

php -S localhost:8000

That's pretty easy!

Reference: http://php.net/manual/en/features.commandline.webserver.php

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜