我写了一个简单的 HTTP 图像服务器:
go/src/demo/demo.go:
package main
import (
"net/http"
"github.com/gorilla/mux"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/foobar", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "/home/foobar/test.jpg")
})
http.ListenAndServe(":5000", router)
}
我编译它(PWD=$HOME/go/src/demo):
GOPATH=$PWD/../../ go build -o demo
然后运行:
./demo
然后在 Chrome 中打开 URL。图像已损坏 - 每次重新加载都会产生不同的损坏,偶尔会很好。较大的图像 (~200KB) 失败的频率更高,较小的图像 (~20KB) 的失败频率较低。
其他详细信息:
go version
产生go version go1.9.5 linux/arm64
。
在我的 Macbook 上,这不会导致任何问题——只发生在 arm64 上(看起来 ResponseWriter 没有实现刷新)。我不知所措。有什么想法吗?
最佳答案
看起来这是 go1.9.5 版本的问题。将工具链更新到 go1.10.1,问题消失。
关于Go 服务器在 arm64 上返回损坏的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50110651/