Maison  >  Article  >  développement back-end  >  Pourquoi My Go http.FileServer sert-il des fichiers obsolètes après modification ?

Pourquoi My Go http.FileServer sert-il des fichiers obsolètes après modification ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 14:14:02934parcourir

Why Does My Go http.FileServer Serve Outdated Files After Modification?

Comportement http.FileServer : invalidation du cache pour les fichiers modifiés

Le package http.FileServer dans Go fournit un moyen pratique de servir des fichiers statiques, mais les utilisateurs ont rencontré des problèmes de mise en cache qui peuvent entraîner le renvoi de contenu obsolète après des modifications de fichiers.

Description du problème

Un exemple simplifié illustre le problème : servir un code HTML statique page en utilisant http.FileServer. Lorsque la page est modifiée et rechargée, le navigateur reçoit l'ancienne version même si la longueur de contenu correcte apparaît dans les en-têtes de réponse.

Dépannage

Les variables indépendantes ont été exclues :

  • Testé sur plusieurs systèmes d'exploitation (Windows, Ubuntu, macOS)
  • La mise en cache vérifiée des fichiers n'est pas effectuée sur le disque

Solution

Après une enquête minutieuse, le problème a été identifié :

Problème : Utilisation d'un dossier partagé Virtual Box pour héberger les fichiers statiques

Raison :La virtualisation introduit une couche d'indirection qui peut interférer avec la détection des modifications de fichiers.

Correction :

Pour résoudre le problème, il est recommandé de physiquement copiez les fichiers statiques sur le système de fichiers local du serveur au lieu d'utiliser un dossier partagé.

En éliminant l'utilisation de dossiers partagés, http.FileServer peut détecter avec précision les modifications de fichiers et diffuser le contenu mis à jour.

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!

Déclaration:
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