首頁 > 後端開發 > Golang > 為什麼使用 Virtual Box 共用資料夾時 http.FileServer 提供過期檔案?

為什麼使用 Virtual Box 共用資料夾時 http.FileServer 提供過期檔案?

Barbara Streisand
發布: 2024-11-02 18:36:02
原創
590 人瀏覽過

Why Does http.FileServer Serve Outdated Files When Using Virtual Box Shared Folders?

http.FileServer 的快取問題

本文解決了在 Go 應用程式中使用 http.FileServer 函數時遇到的特定挑戰。當函數快取文件內容並在文件編輯後繼續提供舊版本時,就會出現問題。

在一個簡化的範例中,Go 程式從./www/ 目錄提供靜態HTML 檔案:

<code class="go">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)
    }
}</code>
登入後複製

但是,編輯HTML 檔案並重新載入頁面後,瀏覽器繼續顯示過時的內容。即使重新啟動程式後,問題仍然存在。

原因

問題的根源在於使用 Virtual Box 共用資料夾來託管 HTML 檔案。此配置會導致 Windows 快取檔案內容,阻止 http.FileServer 函數提供更新版本。

解決方案

要解決此問題,請避免使用 Virtual Box 共用用於在 http.FileServer 中使用的檔案的資料夾。相反,請將檔案直接儲存在主機系統上,例如/testing/ 目錄中:

<code class="go">http.Handle("/", http.FileServer(http.Dir("/home/vagrant/testing/")))</code>
登入後複製

透過遵循此準則,http.FileServer 函數將準確地提供更新的檔案內容,而不會出現任何緩存問題。

以上是為什麼使用 Virtual Box 共用資料夾時 http.FileServer 提供過期檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板