http.FileServer のキャッシュの問題
この記事では、Go アプリケーションで http.FileServer 関数を使用するときに発生する特定の課題について説明します。この問題は、関数がファイルの内容をキャッシュし、ファイルが編集された後でも古いバージョンを提供し続ける場合に発生します。
簡略化した例では、Go プログラムは ./www/ ディレクトリから静的 HTML ファイルを提供します。
<code class="go">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) } }</code>
しかし、HTML ファイルを編集してページをリロードした後も、ブラウザには古いコンテンツが表示され続けます。プログラムを再起動しても問題は解決しません。
原因
問題の根本は、HTML ファイルをホストするための Virtual Box 共有フォルダーの使用にあります。この構成により、Windows はファイルの内容をキャッシュし、http.FileServer 関数が更新されたバージョンを配信できなくなります。
解決策
この問題を解決するには、Virtual Box 共有の使用を避けてください。 http.FileServer での使用を目的としたファイルのフォルダー。代わりに、/testing/ ディレクトリなどのホスト システムにファイルを直接保存します。
<code class="go">http.Handle("/", http.FileServer(http.Dir("/home/vagrant/testing/")))</code>
このガイドラインに従うことで、http.FileServer 関数はキャッシュの問題を発生させることなく、更新されたファイルのコンテンツを正確に提供します。
以上がVirtual Box 共有フォルダーを使用すると http.FileServer が古いファイルを提供するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。