Python的http.server(或Python 2中的SimpleHTTPServer)是一种从命令行服务于当前目录内容的好方法:
python -m http.server
然而,就 Web 服务器而言,它非常慢......
它的行为就像单线程一样,并且偶尔在使用 RequireJS 加载 JavaScript AMD 模块时会导致超时错误。即使加载没有图片的简单页面也可能需要五到十秒钟。
有什么更快的替代方案,而且同样方便吗?
Python的http.server(或Python 2中的SimpleHTTPServer)是一种从命令行服务于当前目录内容的好方法:
python -m http.server
然而,就 Web 服务器而言,它非常慢......
它的行为就像单线程一样,并且偶尔在使用 RequireJS 加载 JavaScript AMD 模块时会导致超时错误。即使加载没有图片的简单页面也可能需要五到十秒钟。
有什么更快的替代方案,而且同样方便吗?
Node.js的http-server
非常方便,并且比Python的SimpleHTTPServer快得多。这主要是因为它使用异步IO来并发处理请求,而不是串行化请求。
如果您还没有安装node.js,请先安装node.js。然后使用node包管理器(npm
)安装该包,使用-g
选项进行全局安装。如果您使用的是Windows操作系统,则需要一个带管理员权限的提示符,如果使用的是Linux/OSX操作系统,则需要在命令前加sudo
:
npm install http-server -g
这将下载所有必需的依赖项并安装http-server
。
现在,您可以从任何目录键入以下命令:
http-server [path] [options]
如果存在路径,则默认为./public
,否则为./
。
选项为[默认值]:
-p
要监听的端口号 [8080]-a
要绑定到的主机地址 [localhost]-i
显示目录索引页面 [True]-s
或 --silent
无声模式不会记录在控制台上-h
或 --help
显示帮助消息并退出因此,要在端口8000上提供当前目录,请输入:
http-server -p 8000
-g
选项,并且在安装过程中没有打印任何错误信息吗?那个错误只是意味着在安装后无法找到它,如果一切正常,则似乎不太可能发生。你使用的平台是什么?在整个驱动器上运行一个查找命令以查找名为http-server
的文件。我已经在几个不同的Linux发行版和Windows版本上成功使用过这个程序。 - Drew Noakes它跨平台,并且已经预装在OS X 10.5到10.12上。除了其他功能外,您还可以使用以下命令在当前目录中启动简单的Web服务器:这是一个使用Python编写的事件驱动型网络引擎,采用开源MIT许可证。
twistd -no web --path=.
选项的解释(更多信息请参见twistd --help
):
-n, --nodaemon don't daemonize, don't use default umask of 0077
-o, --no_save do not save state on shutdown
“web”是一个命令,它在Twisted异步引擎的基础上运行一个简单的Web服务器。它还接受命令行选项(在“web”命令后面 - 有关更多信息,请参见twistd web --help
):
--path= <path> is either a specific file or a directory to be
set as the root of the web server. Use this if you
have a directory full of HTML, cgi, php3, epy, or rpy
files or any other files that you want to be served up
raw.
还有许多其他命令,例如:
conch A Conch SSH service.
dns A domain name server.
ftp An FTP server.
inetd An inetd(8) replacement.
mail An email service
... etc
Ubuntu
sudo apt-get install python-twisted-web (or python-twisted for the full engine)
Mac OS-X(预装在10.5-10.12上,或可通过MacPorts和Pip获取)
sudo port install py-twisted
Windows
installer available for download at http://twistedmatrix.com/
--path
和--port
(用于纯HTTP)选项时,请使用它。twistd -no web -c cert.pem -k privkey.pem --https=4433
sudo apt-get install python-twisted-web
命令。(谢谢这个答案,非常方便!) - nkorthtwistd --help
和 twistd web --help
来配置端口和获取其他选项。我花了一段时间才弄明白这个。 - Ehtesh ChoudhuryGo 1.0 包含一个HTTP服务器和一些代码行的文件服务工具。
package main
import (
"fmt"; "log"; "net/http"
)
func main() {
fmt.Println("Serving files in the current directory on port 8080")
http.Handle("/", http.FileServer(http.Dir(".")))
err := http.ListenAndServe(":8080", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
可以使用go run myserver.go
运行此源代码,或者构建可执行文件使用go build myserver.go
apt-get install webfs
。 - Hudonbrew install webfs
命令,结果是 /usr/local/Cellar/webfs/1.21: 5 files, 96K, built in 15 seconds
。之后我只需要输入命令 webfsd -F -p 3003 -r resources/public/ -f index.html
,就可以实现与 twistd -no web -p 3003 --path=resources/public/
相同的功能。这个命令有点冗长,不太容易记住,但它是替代 twistd 或 SimpleHTTPServer 的一个好选择。 - onetom如果您使用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
安装后,您可以在 Chrome 中创建一个新标签页并单击左上角的 应用 按钮来运行它。
它有一个简单的 GUI。单击“选择文件夹”,然后单击链接http://127.0.0.1:8887
python -m http.server
不可靠——有些响应需要几秒钟。Ran: 一个简单的Go语言静态Web服务器。
php -S 0:8080
php -S localhost:8080
- ggorlen给Polpetta尝试一下...
npm install -g polpetta
然后您可以
polpetta ~/folder
然后,你就可以开始了 :-)
git instaweb
。 - Drew Noakes