首頁  >  文章  >  後端開發  >  為什麼我的Go http.FileServer修改後提供的檔案是過時的?

為什麼我的Go http.FileServer修改後提供的檔案是過時的?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 14:14:02934瀏覽

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

http.FileServer 行為:已編輯檔案的快取失效

Go 中的http.FileServer 套件提供了一種便捷的方式來提供靜態文件,但使用者遇到了快取問題,可能導致文件修改後返回過時的內容。

問題描述

一個簡化的範例示範了這個問題:提供靜態 HTML使用 http.FileServer 的頁面。當頁面被修改並重新載入時,儘管在回應標頭中看到了正確的 Content-Length,瀏覽器仍會收到舊版本。

故障排除

獨立變數被排除:

  • 在多個作業系統(Windows、Ubuntu、macOS)上測試
  • 未在磁碟上執行驗證的檔案快取

解決方案

經過仔細調查,發現了問題:

經過仔細調查,發現了問題:

問題:使用Virtual Box 共用資料夾來託管靜態檔案

原因:虛擬化引入了一個間接層,可能會幹擾檔案修改偵測。

修正:

要解決此問題,建議實體將靜態檔案複製到伺服器的本機檔案系統,而不是使用共用資料夾。 透過消除共用資料夾的使用,http.FileServer 可以準確地偵測檔案修改並提供更新的內容。

以上是為什麼我的Go http.FileServer修改後提供的檔案是過時的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn