ホームページ  >  記事  >  バックエンド開発  >  編集したファイルが Virtual Box の Go の FileServer ハンドラーによって提供されないのはなぜですか?

編集したファイルが Virtual Box の Go の FileServer ハンドラーによって提供されないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 02:52:29659ブラウズ

Why Aren't My Edited Files Being Served by Go's FileServer Handler in Virtual Box?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。