Maison > développement back-end > Golang > Pourquoi http.FileServer sert-il des fichiers obsolètes lors de l'utilisation de dossiers partagés Virtual Box ?

Pourquoi http.FileServer sert-il des fichiers obsolètes lors de l'utilisation de dossiers partagés Virtual Box ?

Barbara Streisand
Libérer: 2024-11-02 18:36:02
original
540 Les gens l'ont consulté

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

Problèmes de mise en cache avec http.FileServer

Cet article aborde un défi spécifique rencontré lors de l'utilisation de la fonction http.FileServer dans une application Go. Le problème survient lorsque la fonction met en cache le contenu des fichiers et continue de servir les anciennes versions même après que les fichiers ont été modifiés.

Dans un exemple simplifié, un programme Go sert des fichiers HTML statiques à partir d'un répertoire ./www/ :

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

Cependant, après avoir modifié le fichier HTML et rechargé la page, le navigateur continue d'afficher le contenu obsolète. Le problème persiste même après le redémarrage du programme.

Cause

La racine du problème réside dans l'utilisation d'un dossier partagé Virtual Box pour héberger les fichiers HTML. Cette configuration amène Windows à mettre en cache le contenu des fichiers, empêchant la fonction http.FileServer de fournir les versions mises à jour.

Solution

Pour résoudre le problème, évitez d'utiliser Virtual Box partagé dossiers pour les fichiers destinés à être utilisés dans http.FileServer. Au lieu de cela, stockez les fichiers directement sur le système hôte, par exemple dans un répertoire /testing/ :

<code class="go">http.Handle("/", http.FileServer(http.Dir("/home/vagrant/testing/")))</code>
Copier après la connexion

En suivant ces directives, la fonction http.FileServer servira avec précision le contenu des fichiers mis à jour sans aucun problème de mise en cache.

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