我正在尝试使用 Gorilla 工具包的mux包在 Go Web 服务器中路由 URL,我有以下 Go 代码:
mux
func main() { r := mux.NewRouter() r.Handle("/", http.FileServer(http.Dir("./static/"))) r.HandleFunc("/search/{searchTerm}", Search) r.HandleFunc("/load/{dataId}", Load) http.Handle("/", r) http.ListenAndServe(":8100", nil) }
目录结构为:
... main.go static\ | index.html | js\ | <js files> | css\ | <css files>
Javascript 和 CSS 文件的引用index.html如下:
index.html
... <link rel="stylesheet" href="css/redmond/jquery-ui.min.css"/> <script src="js/jquery.min.js"></script> ...
当我http://localhost:8100在 Web 浏览器中访问时,index.html内容已成功传送,但是,所有js和cssURL 都返回 404。
http://localhost:8100
js
css
如何让程序从static子目录中提供文件?
static
我想你可能正在寻找PathPrefix…
PathPrefix
func main() { r := mux.NewRouter() r.HandleFunc("/search/{searchTerm}", Search) r.HandleFunc("/load/{dataId}", Load) r.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/"))) http.ListenAndServe(":8100", r) }