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

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

Mary-Kate Olsen
リリース: 2024-11-03 02:52:29
オリジナル
787 人が閲覧しました

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

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