Simple file server to serve current directory [clo

2019-03-09 18:42发布

I'm looking for a dead simple bin that I can launch up in the shell and have it serve the current directory (preferably not ..), with maybe a -p for specifying port. As it should be a development server, it should by default allow connections from localhost only, maybe with an option to specify otherwise. The simpler, the better.

Not sure which tags to use here.

4条回答
相关推荐>>
2楼-- · 2019-03-09 19:18

There is the Perl app App::HTTPThis or I have often used a tiny Mojolicious server to do this. See my blog post from a while back.

Make a file called say server.pl. Put this in it.

#!/usr/bin/env perl

use Mojolicious::Lite;

use Cwd;
app->static->paths->[0] = getcwd;

any '/' => sub {
  shift->render_static('index.html');
};

app->start;

Install Mojolicious: curl get.mojolicio.us | sh and then run morbo server.pl.

Should work, and you can tweak the script if you need to.

查看更多
爷、活的狠高调
3楼-- · 2019-03-09 19:21

Using Twisted Web:

twistd --pidfile= -n web --path .  --port 8080

--pidfile= disables the PID file. Without it a twistd.pid file will be created in the current directory. You can also use --pidfile ''.

查看更多
▲ chillily
4楼-- · 2019-03-09 19:22

For Node, there's http-server:

$ npm install -g http-server
$ http-server Downloads -a localhost -p 8080
Starting up http-server, serving Downloads on port: 8080
Hit CTRL-C to stop the server

Python has:

  • Python 3: python -m http.server --bind 127.0.0.1 8080
  • Python 2: python -m SimpleHTTPServer 8080

Note that Python 2 has no --bind option, so it will allow all connections (not just from localhost).

查看更多
Root(大扎)
5楼-- · 2019-03-09 19:25
python3 -m http.server

or if you don't want to use the default port 8000

python3 -m http.server 3333

or if you want to allow connections from localhost only

python3 -m http.server --bind 127.0.0.1

See the docs.


The equivalent Python 2 commands are

python -m SimpleHTTPServer

python -m SimpleHTTPServer 3333

There is no --bind option.

See the Python 2 docs.


In case your server files do not change, once you have edited and saved them, type refresh in your python console. This will update the files, provided by the server with the most recent ones.

查看更多
登录 后发表回答