HTTP ファイル サーバーのキャッシュの問題
Go の net/http パッケージは、静的ファイルを提供するための FileServer ハンドラーを提供します。ただし、応答の Content-Length ヘッダーが正確であるにもかかわらず、最近編集したファイルが表示されないという問題が発生しました。
原因:
問題静的ファイルをホストするために Virtual Box 共有フォルダーを使用していることが追跡されています。共有フォルダー経由でファイルにアクセスすると、Virtual Box はキャッシュを実行し、古いバージョンのファイルが FileServer ハンドラーによって提供されます。
例:
次のプログラムを考えてみましょう:
package main import ( "fmt" "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("./www/"))) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println(err) } }
HTML ファイルの場合:
<code class="html"><!doctype html> <html> <body> <p>Hello there everyone</p> </body> </html></code>
Vagrant ボックスからこのページにアクセスすると、ブラウザを更新したり、 HTML ファイルを変更します。
解決策:
この問題を解決するには、http.FileServer ハンドラーで静的ファイルを提供するために Virtual Box 共有フォルダーを使用しないことをお勧めします。 。代わりに、ファイルを Vagrant ボックスのローカル ディレクトリに移動し、そこから提供します。
以上が編集したファイルが Virtual Box の Go の FileServer ハンドラーによって提供されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。