我正在使用以下代码段:
fa := http.FileServer(http.Dir("attach/"))
http.Handle("/attach", fa)
文件位于/attach/
目录中。但是,当我点击localhost / attach或localhost/attach/anyfile
时,它会抛出未找到的错误
答案 0 :(得分:3)
FileServer
处理程序从root提供目录内容,但处理程序从请求中接收完整路径。如果您在/
以外的路径进行处理,则需要删除该前缀。
fa := http.FileServer(http.Dir("/attach"))
http.Handle("/attach/", http.StripPrefix("/attach/", fa))
http://golang.org/pkg/net/http/#example_FileServer_stripPrefix
答案 1 :(得分:0)
如果文件位于/ attach下,那么http.Dir()使用的路径名是错误的,除非当前的directoy是/.