ホームページ > バックエンド開発 > Golang > Virtual Box 共有フォルダーを使用すると http.FileServer が古いファイルを提供するのはなぜですか?

Virtual Box 共有フォルダーを使用すると http.FileServer が古いファイルを提供するのはなぜですか?

Barbara Streisand
リリース: 2024-11-02 18:36:02
オリジナル
591 人が閲覧しました

Why Does http.FileServer Serve Outdated Files When Using Virtual Box Shared Folders?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート