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秒钟。
还有什么更快更方便的选择吗?
当前回答
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
其他回答
我在过去的几年里一直在使用filebrowser,它是我发现的最好的替代品。
我喜欢它的特点:
跨平台:支持Linux、MacOs和Windows(+)。它还支持docker(+)。 下载东西是件轻而易举的事。它可以自动将文件夹转换为zip, tar.gz等,用于传输文件夹。 您可以访问文件或文件夹的每一个用途。
也可以考虑devd是一个用go编写的小型web服务器。这里提供了许多平台的二进制文件。
devd -ol path/to/files/to/serve
它体积小,速度快,并提供了一些有趣的可选功能,如当文件更改时实时重新加载。
Go 1.0包含一个HTTP服务器& util,用于用几行代码提供文件。
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运行这个源代码。去构建一个可执行文件去构建myserver。Go
另一个基于节点的简单命令行服务器
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。
尝试webfs,它很小,不依赖于安装node.js或python这样的平台。