回答

收藏

使用 Gorilla 工具包提供带有根 URL 的静态内容

技术问答 技术问答 484 人阅读 | 0 人回复 | 2023-09-11

我试着用 Gorilla 工具包的mux包在 Go Web 服务器中路由 URL,我有以下 Go 代码:
% ?9 I7 u; T  N6 l
    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)}- 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" n
    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)}( r/ x+ |- z& X+ N9 O0 C; U
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则