Go アプリケーションをデプロイする場合、CSS や JavaScript などの静的ファイルをデプロイ パッケージに含めるのは面倒な場合があります。このプロセスを簡素化するために、この記事では、これらの静的ファイルをアプリケーション バイナリに直接ベイクし、メモリから提供するという代替アプローチを検討します。
標準の FileServer ハンドラには FileSystem が必要です。オブジェクト。通常、基礎となるファイル システムを表すために http.Dir を使用して作成されます。ただし、独自の FileSystem を実装することで、メモリからファイルを提供できます。
提供されたコードは、Open と LoadFile の 2 つの関数を使用したこのカスタム FileSystem 実装 (InMemoryFS) を示しています。 Open はメモリ マップからファイルを取得し、LoadFile は必要な情報を含む InMemoryFile オブジェクトを構築します。
メモリからのファイルの提供をサポートするために、InMemoryFile タイプはhttp.ファイルインターフェイス。これには、ファイルを閉じる、ファイル情報を取得する、ファイル内で読み取り、シークするためのメソッドが含まれています。
カスタム ファイルシステムを定義すると、それを FileServer ハンドラーで次のように使用できます。いつもの。サンプルコードは、InMemoryFS を初期化し、静的ファイルをメモリにロードし、カスタム FileSystem を使用して FileServer をセットアップします。
注: 提供された実装は基本的な静的ファイルの提供には機能しますが、いくつかの制限があるため、運用環境での使用はお勧めできません。より堅牢なソリューションについては、提供されているリファレンスを参照してください。
以上がGo アプリケーションでメモリから静的ファイルを提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。