Heim >Backend-Entwicklung >Golang >Warum werden meine bearbeiteten Dateien nicht vom FileServer-Handler von Go in Virtual Box bereitgestellt?

Warum werden meine bearbeiteten Dateien nicht vom FileServer-Handler von Go in Virtual Box bereitgestellt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 02:52:29783Durchsuche

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

HTTP-Dateiserver-Caching-Probleme

Das net/http-Paket in Go stellt einen FileServer-Handler für die Bereitstellung statischer Dateien bereit. Benutzer sind jedoch auf ein Problem gestoßen, bei dem kürzlich bearbeitete Dateien nicht angezeigt werden, obwohl der Content-Length-Header in der Antwort korrekt ist.

Ursache:

Das Problem wurde auf die Verwendung eines freigegebenen Virtual Box-Ordners zum Hosten der statischen Dateien zurückgeführt. Wenn über den freigegebenen Ordner auf die Dateien zugegriffen wird, führt Virtual Box eine Zwischenspeicherung durch, wodurch die veraltete Version der Datei vom FileServer-Handler bereitgestellt wird.

Beispiel:

Betrachten Sie das folgende Programm:

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)
    }
}

Mit der HTML-Datei:

<code class="html"><!doctype html>
<html>
<body>
    <p>Hello there everyone</p>
</body>
</html></code>

Wenn Sie über die Vagrant-Box auf diese Seite zugreifen, wird der Inhalt nicht aktualisiert, auch nicht nach einer Aktualisierung des Browsers oder Ändern der HTML-Datei.

Lösung:

Um dieses Problem zu beheben, wird empfohlen, die Verwendung freigegebener Virtual Box-Ordner für die Bereitstellung statischer Dateien mit dem http.FileServer-Handler zu vermeiden . Verschieben Sie die Dateien stattdessen in ein lokales Verzeichnis auf der Vagrant-Box und stellen Sie sie von dort aus bereit.

Das obige ist der detaillierte Inhalt vonWarum werden meine bearbeiteten Dateien nicht vom FileServer-Handler von Go in Virtual Box bereitgestellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn