Caching-Probleme mit http.FileServer
Der http.FileServer in der Go-Standardbibliothek weist bekanntermaßen Caching-Probleme auf, die zu veralteten Dateien führen Inhalte, die nach Dateiänderungen bereitgestellt werden. Ein Benutzer ist auf dieses Problem gestoßen und hat Hilfe gesucht.
Problembeschreibung:
Bei einer Anwendung, die http.FileServer verwendet, kam es trotz eines sich ändernden Content-Length-Headers zu einer falschen Dateiinhaltszustellung . Der Inhalt würde erst nach einem Server- oder Systemneustart aktualisiert.
Erweiterte Untersuchung:
Um potenzielle Caching-Quellen auszuschließen, untersuchte der Benutzer den Code der Anwendung, fand ihn aber keine Hinweise auf Caching-Mechanismen. Sie haben die Anwendung auch auf verschiedenen Plattformen (Windows, Ubuntu, OS Bei der Untersuchung entdeckte der Benutzer den Schuldigen: freigegebene Ordner von Virtual Box. Beim Bereitstellen von Dateien aus einem freigegebenen Virtual Box-Ordner trat das Caching-Problem auf. Als die Dateien jedoch auf dem Hostsystem gespeichert und von dort bereitgestellt wurden, verschwand das Problem.
Ursache:
Das zugrunde liegende Problem besteht darin, dass freigegebene Virtual Box-Ordner angezeigt werden einen eigenen Caching-Mechanismus zu implementieren, der mit dem von http.FileServer durchgeführten Caching in Konflikt steht. Dies führt dazu, dass veraltete Inhalte bereitgestellt werden.
Empfehlung:
Um dieses Caching-Problem zu vermeiden, wird empfohlen, Dateien, die für die Verwendung in http.FileServer vorgesehen sind, außerhalb von zu speichern Freigegebene Ordner der Virtual Box. Dadurch wird sichergestellt, dass der Caching-Mechanismus der Anwendung der alleinige Controller für die Inhaltsbereitstellung ist und verhindert, dass veraltete Inhalte bereitgestellt werden.
Das obige ist der detaillierte Inhalt vonWarum stellt http.FileServer veraltete Inhalte bereit, wenn freigegebene Virtual Box-Ordner verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!