Python的http。server(或SimpleHTTPServer for Python 2)是一个从命令行提供当前目录内容的好方法:

python -m http.server

然而,就网络服务器而言,它是非常缓慢的…

它的行为就像它是单线程的,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误。加载一个没有图像的简单页面可能需要5到10秒钟。

还有什么更快更方便的选择吗?


当前回答

尝试webfs,它很小,不依赖于安装node.js或python这样的平台。

其他回答

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

试试polpetta吧…

npm install -g polpetta

然后你就可以

polpetta ~/folder

你已经准备好了:-)

我喜欢实时服务器。它是快速的,有一个很好的实时加载功能,这是非常方便的开发过程中。

用法非常简单:

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'

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

尝试webfs,它很小,不依赖于安装node.js或python这样的平台。