Python的http.server(或适用于Python 2的SimpleHTTPServer)是一种从命令行提供当前目录内容的好方法:
python -m http.server
但是,就Web服务器而言,它是非常简单的...
它的行为就像是单线程的一样,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。加载没有图像的简单页面可能需要五到十秒钟。
有什么方便的更快替代方法?
git instaweb
。
Python的http.server(或适用于Python 2的SimpleHTTPServer)是一种从命令行提供当前目录内容的好方法:
python -m http.server
但是,就Web服务器而言,它是非常简单的...
它的行为就像是单线程的一样,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。加载没有图像的简单页面可能需要五到十秒钟。
有什么方便的更快替代方法?
git instaweb
。
Answers:
用于node.js的http服务器非常方便,并且比Python的SimpleHTTPServer快得多。这主要是因为它使用异步IO并发处理请求,而不是序列化请求。
如果尚未安装,请安装node.js。然后使用节点软件包管理器(npm
)安装软件包,并使用-g
全局安装选项。如果您使用的是Windows,则需要具有管理员权限的提示,而在Linux / OSX上,则需要执行sudo
以下命令:
npm install http-server -g
这将下载所有必需的依赖项并进行安装http-server
。
现在,您可以从任何目录键入:
http-server [path] [options]
路径是可选的,./public
如果存在则默认为,否则为./
。
选项为[默认值]:
-p
要监听的端口号[8080]-a
绑定到[localhost]的主机地址-i
显示目录索引页[是]-s
或“ --silent
静音”模式将无法登录到控制台-h
或--help
显示帮助消息并退出因此,要在端口8000上提供当前目录,请键入:
http-server -p 8000
-g
选项,并且确保在安装过程中未打印任何错误?该错误仅表示在安装后无法找到它,如果一切顺利,这似乎不太可能。您在什么平台上?在驱动器上运行find命令以查找名为name的文件http-server
。我已经在几个不同的Linux发行版和Windows版本上成功使用了此功能。
我建议:Twisted(http://twistedmatrix.com)
一个事件驱动的网络引擎,该引擎使用Python编写,并已获得MIT开源许可。
它是跨平台的,已预先安装在OS X 10.5至10.12上。除其他外,您可以使用以下命令在当前目录中启动一个简单的Web服务器:
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
视窗
installer available for download at http://twistedmatrix.com/
Twisted还可以利用安全证书来加密连接。将此选项与现有--path
和--port
(对于纯HTTP)选项一起使用。
twistd -no web -c cert.pem -k privkey.pem --https=4433
sudo apt-get install python-twisted-web
首先。(感谢您的回答,非常方便!)
twistd --help
和配置端口并获取其他选项twistd web --help
。花了我一段时间才能弄清楚。
走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.go
或构建可执行文件来运行此源go build myserver.go
尝试使用webfs,它很小,并且不依赖于安装诸如node.js或python之类的平台。
apt-get install webfs
brew install webfs
在Mac上执行了,结果是🍺 /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/
。它有点罗word,所以记住起来并不明显,但是作为twisted或SimpleHTTPServer的替代者很高兴知道。
如果您使用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的服务器https://github.com/m3ng9i/ran
Ran:一个用Go编写的简单静态Web服务器
试一试波普莱塔...
npm install -g polpetta
那么你也能
波波塔〜/文件夹
你准备好了:-)
使用Servez作为服务器
http://localhost:8080
或选择“启动浏览器”注意:之所以合并考虑是因为Chrome不再提供对 Web服务器的支持,因为Chrome取消了对应用程序的支持,并且我支持对命令行经验为零的美术专业学生
我喜欢现场服务器。它速度快,并具有良好的实时重新加载功能,这在开发过程中非常方便。
用法很简单:
cd ~/Sites/
live-server
默认情况下,它将创建一个IP 127.0.0.1和端口8080的服务器。
如果端口8080不空闲,它将使用另一个端口:
如果需要查看本地网络中其他计算机上的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'
另一个基于节点的简单命令行服务器
https://github.com/greggman/servez-cli
部分是为了响应http服务器出现问题而写的,尤其是在Windows上。
npm install -g servez
servez [options] [path]
没有路径,它将为当前文件夹提供服务。
默认情况下,它index.html
用于文件夹路径(如果存在)。否则,它将为文件夹提供目录列表。它还提供CORS标头。您可以选择使用打开基本身份验证,--username=somename --password=somepass
并且可以提供https。