Maison > développement back-end > Golang > Pourquoi mes fichiers modifiés ne sont-ils pas servis par le gestionnaire de serveur de fichiers Go dans Virtual Box ?

Pourquoi mes fichiers modifiés ne sont-ils pas servis par le gestionnaire de serveur de fichiers Go dans Virtual Box ?

Mary-Kate Olsen
Libérer: 2024-11-03 02:52:29
original
780 Les gens l'ont consulté

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

Problèmes de mise en cache du serveur de fichiers HTTP

Le package net/http dans Go fournit un gestionnaire FileServer pour servir les fichiers statiques. Cependant, les utilisateurs ont rencontré un problème où les fichiers récemment modifiés ne sont pas affichés, bien que l'en-tête Content-Length dans la réponse soit exact.

Cause :

Le problème a été attribué à l'utilisation d'un dossier partagé Virtual Box pour héberger les fichiers statiques. Lorsque les fichiers sont accessibles via le dossier partagé, Virtual Box effectue une mise en cache, ce qui entraîne la diffusion de la version obsolète du fichier par le gestionnaire FileServer.

Exemple :

Considérons le programme suivant :

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)
    }
}
Copier après la connexion

Avec le fichier HTML :

<code class="html"><!doctype html>
<html>
<body>
    <p>Hello there everyone</p>
</body>
</html></code>
Copier après la connexion

Lors de l'accès à cette page depuis la box Vagrant, le contenu ne sera pas mis à jour, même après avoir rafraîchi le navigateur ou modifier le fichier HTML.

Solution :

Pour résoudre ce problème, il est recommandé d'éviter d'utiliser les dossiers partagés Virtual Box pour servir des fichiers statiques avec le gestionnaire http.FileServer . Au lieu de cela, déplacez les fichiers vers un répertoire local sur la boîte Vagrant et servez-les à partir de là.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal