如何用http提供静态文件?走

时间:2014-08-06 00:07:07

标签: go

我正在使用以下代码段:

fa := http.FileServer(http.Dir("attach/"))
http.Handle("/attach", fa)

文件位于/attach/目录中。但是,当我点击localhost / attach或localhost/attach/anyfile时,它会抛出未找到的错误

2 个答案:

答案 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是/.