http.FileServer 的快取問題
眾所周知,Go 標準庫中的http.FileServer 有快取問題,導致過時的檔案編輯後提供的內容。用戶遇到此問題並尋求協助。
問題描述:
儘管 Content-Length 標頭發生變化,使用 http.FileServer 的應用程式仍遇到不正確的檔案內容傳輸。內容只會在伺服器或系統重新啟動後更新。
擴充調查:
為了排除潛在的快取來源,使用者檢查了應用程式的程式碼,但發現沒有快取機制的證據。他們還在不同平台(Windows、Ubuntu、OS X)上測試了該應用程序,行為沒有變化。
解決方案:避免 Virtual Box 共用資料夾
經過一些調查後,使用者發現了罪魁禍首:Virtual Box共用資料夾。當從 Virtual Box 共用資料夾提供檔案時,會出現快取問題。但是,當檔案儲存在主機系統上並從那裡提供服務時,問題就消失了。
原因:
根本問題是 Virtual Box 共享資料夾出現實現自己的快取機制,這與http.FileServer執行的快取衝突。這會導致提供過時的內容。
建議:
為了避免此快取問題,建議將打算在 http.FileServer 中使用的檔案儲存在外部Virtual Box 共用資料夾。這確保了應用程式的快取機制是內容交付的唯一控制器,從而防止提供過時的內容。
以上是使用 Virtual Box 共用資料夾時,為什麼 http.FileServer 提供陳舊內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!