无法在Go Gorilla服务器中提供静态文件

时间:2016-01-16 19:00:21

标签: go static webserver

我正在玩一个小型玩具服务器来学习Go web编程。

我的项目目录结构包含以下public目录:

public\
  | style.css

所有人publicstyle.css的权限为r-xr--

main.go中,我有以下几行:

router := mux.NewRouter()
router.Handle("/static/",
  http.StripPrefix("/static/", http.FileServer(http.Dir("public"))))
log.Fatal(http.ListenAndServe(":3001", router))

每次拨打http://localhost:3001/static/style.css时 服务器返回404。

我已经在路径中尝试了前导和尾部斜杠的所有组合,但没有任何区别。

我在Ubuntu 15.10(x64)上运行Go v1.5.3。

1 个答案:

答案 0 :(得分:4)

以下是一个示例,说明如何通过名为/static/的文件夹向public中的文件提出任何请求。

router := mux.NewRouter()
//router.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("public"))))
router.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("public/"))))
log.Fatal(http.ListenAndServe(":3001", router))