320

Pythonのhttp.server(またはPython 2の場合はSimpleHTTPServer)は、コマンドラインから現在のディレクトリのコンテンツを提供するための優れた方法です。

python -m http.server

ただし、Webサーバーに関する限り、非常に遅いです...

シングルスレッドのように動作し、RequireJSを使用してJavaScriptAMDモジュールをロードするときにタイムアウトエラーが発生することがあります。画像のない単純なページを読み込むには、5〜10秒かかる場合があります。

同様に便利な、より高速な代替手段は何ですか?

4

13 に答える 13

412

node.jsのhttp-serverは非常に便利で、PythonのSimpleHTTPServerよりもはるかに高速です。これは主に、リクエストをシリアル化する代わりに、リクエストの同時処理に非同期IOを使用するためです。

インストール

node.jsをまだインストールしていない場合は、インストールします。次に、ノードパッケージマネージャー(npm)を使用してパッケージをインストールし、-gオプションを使用してグローバルにインストールします。sudoWindowsを使用している場合は、管理者権限のあるプロンプトが必要です。Linux/ OSXを使用している場合は、次のコマンドを実行する必要があります。

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
于 2012-10-15T23:27:40.400 に答える
117

おすすめ:Twistedhttp://twistedmatrix.com

Pythonで記述され、オープンソースのMITライセンスの下でライセンスされているイベント駆動型ネットワークエンジン。

クロスプラットフォームであり、OSX10.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/

HTTPS

Twistedは、セキュリティ証明書を利用して接続を暗号化することもできます。これは、既存のオプション--pathおよび--port(プレーンHTTPの場合)オプションで使用します。

twistd -no web -c cert.pem -k privkey.pem --https=4433
于 2013-01-31T03:35:16.417 に答える
34

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

于 2012-12-20T11:01:33.640 に答える
21

webfsを試してみてください。これは小さく、node.jsやpythonなどのプラットフォームがインストールされているかどうかに依存しません。

于 2013-02-26T22:23:27.183 に答える
15

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
于 2012-11-15T21:32:20.547 に答える
12

これがもう1つです。Chrome拡張機能です

インストールしたら、Chromeで新しいタブを作成し、左上にあるアプリボタンをクリックして実行できます

単純なGUIがあります。[フォルダの選択]をクリックしてから、http://127.0.0.1:8887リンクをクリックします

ここに画像の説明を入力してください

https://www.youtube.com/watch?v=AK6swHiPtew

于 2016-08-02T15:37:19.107 に答える
9

また、goで記述された小さなWebサーバーdevdを検討してください。多くのプラットフォームのバイナリはここから入手できます。

devd -ol path/to/files/to/serve

小さくて高速で、ファイルが変更されたときのライブリロードなどの興味深いオプション機能を提供します。

于 2016-05-12T06:51:04.707 に答える
9

信頼性が低いことがわかりましpython -m http.serverた。一部の応答には数秒かかります。

今、私はRanhttps://github.com/m3ng9i/ranというサーバーを使用しています

Ran:Goで記述された単純な静的Webサーバー

于 2016-06-11T23:15:31.207 に答える
5

PHPがインストールされている場合は、組み込みサーバーを使用できます。

php -S 0:8080
于 2019-11-08T17:13:41.630 に答える
4

ポルペッタを試してみてください...

npm install -g polpetta

その後、あなたはすることができます

ポルペッタ〜/folder

そして、あなたは行く準備ができています:-)

于 2012-11-16T04:25:24.903 に答える
3

サーバーとしてのServezの使用

  1. Servezをダウンロード
  2. インストールして実行します
  3. 提供するフォルダを選択してください
  4. 「開始」を選択
  5. http://localhost:8080「ブラウザの起動」に移動するか、選択します

サーブ

注:Chromeがアプリのサポートを削除したため、Chrome用のWebサーバーが廃止され、コマンドラインの経験がまったくない芸術学生をサポートしているため、これをまとめました。

于 2017-03-04T13:20:30.020 に答える
1

私はライブサーバーが好きです。高速で、ライブリロード機能があり、開発中に非常に便利です。

使用法は非常に簡単です:

cd ~/Sites/
live-server

デフォルトでは、IP127.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_profilelive-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'
于 2019-02-17T16:19:38.103 に答える
1

さらに別のノードベースのシンプルなコマンドラインサーバー

https://github.com/greggman/servez-cli

特にWindowsで問題が発生しているhttp-serverに対応して部分的に作成されています。

インストール

node.jsをインストールしてから

npm install -g servez

利用方法

servez [options] [path]

パスがない場合は、現在のフォルダーにサービスを提供します。

デフォルトではindex.html、存在する場合はフォルダパスとして機能します。それ以外の場合は、フォルダのディレクトリリストを提供します。CORSヘッダーも提供します。オプションで、を使用して基本認証をオンにし--username=somename --password=somepass、httpsを提供できます。

于 2019-11-04T09:32:25.210 に答える