Go の Web サーバーのファイルシステム ルートを理解する
Web サーバー機能に Go の net/http パッケージを利用する場合、重要な疑問が生じます。 Web サイトのルートはファイルシステムにマップされますか?
一部の静的ファイルサーバーとは異なり、 net/http パッケージは、ハンドラーを使用して HTTP リクエストを管理します。ハンドラーは、指定された「ルート」ディレクトリなしでリクエストを処理し、レスポンスを生成します。
ただし、静的ファイルの提供については、FileServer() 関数が解決策を提供します。絶対パスを指定すると、ルート ディレクトリが明示的に確立されます。相対パスが使用される場合、現在の作業ディレクトリ (通常はアプリケーションが実行される場所) を参照します。
たとえば、次の構成を考慮してください。
http.Handle("/", http.FileServer(http.Dir("/tmp")))
これは URL をマップします。ルート「/」をファイルシステム上の「/tmp」ディレクトリにコピーします。したがって、「/mydoc.txt」に対するリクエストは「/tmp/mydoc.txt」ファイルを取得します。
StripPrefix() 関数を使用すると、より詳細なカスタマイズが可能です。たとえば、URL「/tmpfiles/」で「/tmp」を提供するには、次の構成で十分です。
http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
ハンドラーを活用し、FileServer() 内のルート ディレクトリ マッピングを理解することで、開発者は次のことが可能になります。 Go の Web サーバー フレームワークを使用して静的ファイルを効果的に提供します。
以上がGo の「net/http」Web サーバーは Web サイトのルートをファイルシステムにどこにマッピングしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。