使用 Gorilla 工具包提供带有根 URL 的静态内容
技术问答
544 人阅读
|
0 人回复
|
2023-09-11
|
我试着用 Gorilla 工具包的mux包在 Go Web 服务器中路由 URL,我有以下 Go 代码:+ a; }0 a" u/ D7 j* }! d" i
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)}
" G* X( Q9 u& ] 目录结构如下:
' Q! P" _- n' a! H...main.gostatic\ | index.html | js\ | | css\ | " `* Z# N- R* |8 t" {% d
Javascript 和 CSS 引用文件index.html如下:4 Z* I( u- R& v* _ F. F T" d
......0 Y, W* `- \" I( n# P3 M
当我http://localhost:8100在 Web 访问浏览器时,index.html内容已经成功传输,但是,所有js和cssURL 都回 404。6 J2 m% K/ J! v* P+ z. [
如何让程序从static在子目录中提供文件?
' ~, U; C N" q" l0 j$ ^
) i1 t1 ^, R( l& o: J9 {# ` 解决方案:
7 [- s- w4 ]7 x) L, E+ {- G 我想你可能在寻找PathPrefix…% Z( ]& k ~9 Y1 f6 A2 i
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)}5 |; G' Q) q6 e9 j [ T* W
|
|
|
|
|
|