HTTP 檔案伺服器快取問題
Go 中的 net/http 套件提供了一個用於提供靜態檔案的 FileServer 處理程序。然而,使用者遇到了一個問題,即儘管回應中的 Content-Length 標頭準確,但最近編輯的文件並未顯示。
原因:
問題已追蹤到使用 Virtual Box 共用資料夾來託管靜態檔案。透過共用資料夾存取檔案時,Virtual Box 會執行緩存,導致 FileServer 處理程序提供檔案的過時版本。
範例:
考慮以下程序:
package main import ( "fmt" "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("./www/"))) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println(err) } }
使用HTML 檔案:
<code class="html"><!doctype html> <html> <body> <p>Hello there everyone</p> </body> </html></code>
從Vagrant 盒子存取此頁面時,內容不會更新,即使刷新瀏覽器或修改HTML 檔案。
解決方案:
要解決此問題,建議避免使用 Virtual Box 共用資料夾透過 http.FileServer 處理程序提供靜態檔案。相反,將檔案移至 Vagrant 盒子上的本機目錄並從那裡提供它們。
以上是為什麼我編輯的檔案沒有由 Virtual Box 中的 Go 檔案伺服器處理程序提供服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!