Go服务器返回arm64上损坏的映像
我编写了一个简单的HTTP映像服务器: go/src/demo/demo.go:Go服务器返回arm64上损坏的映像,go,arm64,Go,Arm64,我编写了一个简单的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
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):
并运行:
./demo
然后在Chrome中打开URL。图像已损坏——每次重新加载都会产生不同的损坏,偶尔也会出现一次。较大的图像(~200KB)故障频率较高,较小的图像(~20KB)故障频率较低
其他详情:
go版本
产生go版本go1.9.5 linux/arm64
在我的Macbook上,这不会引起任何问题——只发生在arm64上(看起来ResponseWriter没有实现刷新)。我不知所措。有什么想法吗?看来这是go1.9.5版本的问题。将工具链更新为go1.10.1,问题消失。1.9.5版完全没有问题。测试和工作(无外部库)。也许这就是问题所在,但还没有解决。您测试的是哪种体系结构和设备?上面的代码(即使使用http.NewServeMux()而不是gorilla)在使用编译时也能正常工作,但在使用编译时,会出现上述损坏。Debian stretch。工作没有问题。我指的是架构,如中所示,您是否在arm64(不是amd64)上运行?我怀疑这只会影响arm64。
./demo