Rumah > pembangunan bahagian belakang > Golang > Mengapa Fail Saya yang Diedit Tidak Dilayan oleh Pengendali Pelayan Fail Go dalam Kotak Maya?

Mengapa Fail Saya yang Diedit Tidak Dilayan oleh Pengendali Pelayan Fail Go dalam Kotak Maya?

Mary-Kate Olsen
Lepaskan: 2024-11-03 02:52:29
asal
749 orang telah melayarinya

Why Aren't My Edited Files Being Served by Go's FileServer Handler in Virtual Box?

Isu Caching Pelayan Fail HTTP

Pakej net/http dalam Go menyediakan pengendali FileServer untuk menyediakan fail statik. Walau bagaimanapun, pengguna menghadapi masalah apabila fail yang diedit baru-baru ini tidak dipaparkan, walaupun pengepala Panjang Kandungan dalam respons adalah tepat.

Punca:

Isu ini telah dikesan menggunakan folder kongsi Kotak Maya untuk mengehoskan fail statik. Apabila fail diakses melalui folder kongsi, Virtual Box melakukan caching, menyebabkan versi lapuk fail disampaikan oleh pengendali FileServer.

Contoh:

Pertimbangkan program berikut:

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)
    }
}
Salin selepas log masuk

Dengan fail HTML:

<code class="html"><!doctype html>
<html>
<body>
    <p>Hello there everyone</p>
</body>
</html></code>
Salin selepas log masuk

Apabila mengakses halaman ini dari kotak Vagrant, kandungan tidak akan dikemas kini, walaupun selepas menyegarkan penyemak imbas atau mengubah suai fail HTML.

Penyelesaian:

Untuk menyelesaikan isu ini, adalah disyorkan untuk mengelak daripada menggunakan folder kongsi Virtual Box untuk menyediakan fail statik dengan pengendali http.FileServer . Sebaliknya, alihkan fail ke direktori tempatan pada kotak Vagrant dan layankannya dari sana.

Atas ialah kandungan terperinci Mengapa Fail Saya yang Diedit Tidak Dilayan oleh Pengendali Pelayan Fail Go dalam Kotak Maya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan