使用 Gorilla 工具包提供带有根 URL 的静态内容
技术问答
484 人阅读
|
0 人回复
|
2023-09-11
|
我试着用 Gorilla 工具包的mux包在 Go Web 服务器中路由 URL,我有以下 Go 代码:
% ?9 I7 u; T N6 lfunc 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)}- K, a" D1 w8 W3 k
目录结构如下:: m; {# D, y! e& K4 h9 L+ ^; [
...main.gostatic\ | index.html | js\ | | css\ | ' W8 k5 W; a9 w( G8 L4 m6 j
Javascript 和 CSS 引用文件index.html如下:
) ?5 K: j, s3 u. ]+ Y" ?8 ]; u......1 a1 E3 G9 o! r5 x6 V
当我http://localhost:8100在 Web 访问浏览器时,index.html内容已经成功传输,但是,所有js和cssURL 都回 404。 p; `' k9 X! k, W
如何让程序从static在子目录中提供文件?
! N5 t: w, o) x; x8 m" a " ~) t" G( h9 h
解决方案:
9 l9 a( ]& j4 t' K! V 我想你可能在寻找PathPrefix…
0 ]9 M% {; z5 g! o" nfunc 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)}( r/ x+ |- z& X+ N9 O0 C; U
|
|
|
|
|
|