php小编香蕉为您介绍Golang中的一个常见问题,即使用http.FileServer时返回404未找到错误。在使用Golang构建Web应用程序时,我们经常会使用http.FileServer来提供静态文件服务。然而,有时候在访问静态文件时会遇到404未找到的问题。本文将帮助您解决这个问题,并提供一些常见的解决方案。
问题内容
有这个简单的片段:
fs := http.FileServer(http.Dir("./web/js"))
http.Handle("/js/", http.StripPrefix("/js/", fs))
并且转到 /js/
实际上列出了文件,但是当我尝试打开实际文件时,它显示 404 Not Found
$ curl http://localhost:8100/js/
test.js
$ curl http://localhost:8100/js/test.js
404 page not found
有什么建议吗?这似乎是一个超级微不足道的问题。
解决方法
问题不在代码片段中,而是模糊了细节,例如使用 gorilla/mux
,它以不同的方式提供文件,如本解决方案中所指出的:
解决方案
TLDR:
import "github.com/gorilla/mux"
// snip
router := mux.NewRouter()
fs := http.FileServer(http.Dir("./web/js"))
router.Handle("/js/{.js}", http.StripPrefix("/js/", fs))