Python的http。server(或SimpleHTTPServer for Python 2)是一个从命令行提供当前目录内容的好方法:
python -m http.server
然而,就网络服务器而言,它是非常缓慢的…
它的行为就像它是单线程的,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。加载一个没有图像的简单页面可能需要5到10秒钟。
还有什么更快更方便的选择吗?
Python的http。server(或SimpleHTTPServer for Python 2)是一个从命令行提供当前目录内容的好方法:
python -m http.server
然而,就网络服务器而言,它是非常缓慢的…
它的行为就像它是单线程的,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。加载一个没有图像的简单页面可能需要5到10秒钟。
还有什么更快更方便的选择吗?
当前回答
也可以考虑devd是一个用go编写的小型web服务器。这里提供了许多平台的二进制文件。
devd -ol path/to/files/to/serve
它体积小,速度快,并提供了一些有趣的可选功能,如当文件更改时实时重新加载。
其他回答
另一个基于节点的简单命令行服务器
https://github.com/greggman/servez-cli
部分是为了响应http服务器存在的问题,特别是在windows上。
安装
然后安装node.js
npm install -g servez
使用
servez [options] [path]
如果没有路径,它将提供当前文件夹。
默认情况下,它为文件夹路径提供index.html(如果存在的话)。否则,它为文件夹提供目录列表。它还提供CORS报头。你可以选择使用——username= someename——password=somepass开启基本身份验证,也可以使用https。
我喜欢实时服务器。它是快速的,有一个很好的实时加载功能,这是非常方便的开发过程中。
用法非常简单:
cd ~/Sites/
live-server
默认情况下,它创建一个IP为127.0.0.1,端口为8080的服务器。
http://127.0.0.1:8080/
如果8080端口没有空闲,它将使用其他端口:
http://127.0.0.1:52749/
http://127.0.0.1:52858/
如果您需要在本地网络中的其他机器上查看web服务器,您可以检查您的IP是什么并使用:
live-server --host=192.168.1.121
下面是一个自动抓取默认接口的IP地址的脚本。它只在macOS上运行。
如果您将它放在.bash_profile中,live-server命令将自动启动具有正确IP的服务器。
# **
# Get IP address of default interface
# *
function getIPofDefaultInterface()
{
local __resultvar=$1
# Get default route interface
if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
if [ -n "$if" ]; then
# Get IP of the default route interface
local __IP=$( ipconfig getifaddr $if )
eval $__resultvar="'$__IP'"
else
# Echo "No default route found"
eval $__resultvar="'0.0.0.0'"
fi
}
alias getIP='getIPofDefaultInterface IP; echo $IP'
# **
# live-server
# https://www.npmjs.com/package/live-server
# *
alias live-server='getIPofDefaultInterface IP && live-server --host=$IP'
这是另一个。这是一个Chrome扩展
安装完成后,你可以在Chrome中创建一个新标签,然后点击左上角的app按钮来运行它
它有一个简单的gui。单击选择文件夹,然后单击http://127.0.0.1:8887链接
https://www.youtube.com/watch?v=AK6swHiPtew
node.js的http-server非常方便,比Python的SimpleHTTPServer快得多。这主要是因为它使用异步IO来并发处理请求,而不是序列化请求。
安装
如果你还没有安装node.js。然后使用节点包管理器(npm)安装包,使用-g选项进行全局安装。如果你是在Windows上,你需要一个具有管理员权限的提示符,而在Linux/OSX上,你需要sudo命令:
npm install http-server -g
这将下载所需的依赖项并安装http-server。
Use
现在,在任何目录下,你都可以输入:
http-server [path] [options]
Path为可选参数,如果存在,默认为。/public,否则为。/。
选项为[默认值]:
-p监听端口号[8080] 绑定到[localhost]的主机地址 显示目录索引页[True] 静音模式不会登录到控制台 -h或——help显示帮助信息并退出
因此,要在端口8000上提供当前目录,输入:
http-server -p 8000
如果使用Mercurial,则可以使用内置的HTTP服务器。在您希望提供的文件夹中:
hg serve
从文档中可以看出:
export the repository via HTTP
Start a local HTTP repository browser and pull server.
By default, the server logs accesses to stdout and errors to
stderr. Use the "-A" and "-E" options to log to files.
options:
-A --accesslog name of access log file to write to
-d --daemon run server in background
--daemon-pipefds used internally by daemon mode
-E --errorlog name of error log file to write to
-p --port port to listen on (default: 8000)
-a --address address to listen on (default: all interfaces)
--prefix prefix path to serve from (default: server root)
-n --name name to show in web pages (default: working dir)
--webdir-conf name of the webdir config file (serve more than one repo)
--pid-file name of file to write process ID to
--stdio for remote clients
-t --templates web templates to use
--style template style to use
-6 --ipv6 use IPv6 in addition to IPv4
--certificate SSL certificate file
use "hg -v help serve" to show global options