使用golangのWebサーバ、サイトのルートディレクトリのファイルシステムへのマッピング?

ゴーでは、ネット/ HTTPパッケージには、Webサーバーの機能を提供します。これは、静的なファイルサーバではありません、それははるかにそれよりもです。

いいえ、ファイルシステム「ルート」のコンセプト。HTTPリクエストを提供するためのハンドラを使用して、WebサーバーがURLにマッピングされていません。ハンドラは、このような((ハンドルを持つ)またはHandleFuncとして、ハンドラを登録することができリクエストHTTP処理し、そしてセットし、応答を生成するための責任がある)機能あなたは、サーバーを起動するためにListenAndServe()関数を使用することができます。

ネット/ HTTPパッケージのドキュメントを読んで、基本的な概念を理解し始める。また、多くの小さな例が含まれています。

Webアプリケーションのブログ記事を書くことも有用です。

静的ファイルサーバ

しかし、それは静的なファイルサーバまたは「ファイルシステム」の機能を提供し、HTTPパッケージは、ハンドラの静的ファイルとの契約を返すファイルサーバー()関数が含まれています。ファイルサーバー()のパラメータは静的を提供としてあなたは「ルート」フォルダを指定することができますファイル。

あなたはファイルサーバ()への絶対パスを渡すと、あなたは相対パスを指定する場合、それは常に現在の作業ディレクトリの文脈で解釈されることを意味します。何は間違いない。デフォルトでは、これはあなたのアプリケーションのファイルの開始がありますフォルダ(出先実行...コマンドフォルダまたはコンパイルされた実行可能バイナリファイルを実行ファイル)。

例:

http.Handle("/", http.FileServer(http.Dir("/tmp")))

このセットは、ハンドラは、静的ファイル「/tmp/mydoc.txt」になります「/mydoc.txt」GET要求に応答して、/ tmpの例では、ルートURL /フォルダのファイルへのマッピングを提供します。

完全なアプリケーション:

package main
import (
    "log"
    "net/http"
)
func main() {
    // Simple static webserver:
    http.Handle("/", http.FileServer(http.Dir("/tmp")))
    log.Fatal(http.ListenAndServe(":8080", nil))
}

あなたは、より複雑なマッピング例を実行するためにStripPrefix()関数を使用することができます。

// To serve a directory on disk (/tmp) under an alternate URL
// path (/tmpfiles/), use StripPrefix to modify the request
// URL's path before the FileServer sees it:
http.Handle("/tmpfiles/",
    http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))

おすすめ

転載: www.cnblogs.com/enumx/p/12313114.html