Problèmes de mise en cache avec http.FileServer
Le http.FileServer de la bibliothèque standard Go est connu pour présenter des problèmes de mise en cache, conduisant à des fichiers obsolètes. contenu diffusé après les modifications du fichier. Un utilisateur a rencontré ce problème et a demandé de l'aide.
Description du problème :
Une application utilisant http.FileServer rencontrait une livraison incorrecte du contenu du fichier, malgré un en-tête Content-Length changeant. . Le contenu ne serait mis à jour qu'après un redémarrage du serveur ou du système.
Enquête approfondie :
Pour exclure les sources potentielles de mise en cache, l'utilisateur a examiné le code de l'application, mais a trouvé aucune preuve de mécanismes de mise en cache. Ils ont également testé l'application sur différentes plateformes (Windows, Ubuntu, OS X), sans changement de comportement.
Solution : évitez les dossiers partagés Virtual Box
Après quelques Après enquête, l'utilisateur a découvert le coupable : les dossiers partagés de Virtual Box. Lorsque les fichiers étaient servis à partir d'un dossier partagé Virtual Box, un problème de mise en cache se produisait. Cependant, lorsque les fichiers ont été stockés sur le système hôte et servis à partir de là, le problème a disparu.
Cause :
Le problème sous-jacent est que les dossiers partagés de Virtual Box apparaissent pour implémenter leur propre mécanisme de mise en cache, qui entre en conflit avec la mise en cache effectuée par http.FileServer. Cela conduit au contenu obsolète.
Recommandation :
Pour éviter ce problème de mise en cache, il est recommandé de stocker les fichiers destinés à être utilisés dans http.FileServer en dehors de Dossiers partagés Virtual Box. Cela garantit que le mécanisme de mise en cache de l'application est le seul contrôleur de la livraison du contenu, empêchant ainsi la diffusion de contenu obsolète.
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!