小编典典

使用Gorilla工具箱通过根URL提供静态内容

go

我正在尝试使用Gorilla工具包的mux软件包来路由Go
Web服务器中的URL,我有以下Go代码:

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>

index.html像这样引用Javascript和CSS文件:

...
<link rel="stylesheet" href="css/redmond/jquery-ui.min.css"/>
<script src="js/jquery.min.js"></script>
...

当我http://localhost:8100在Web浏览器中访问index.html内容时,内容已成功交付,但是,所有jscssURL都返回404。

如何获得程序以将文件提供到static子目录之外?


阅读 219

收藏
2020-07-02

共1个答案

小编典典

我想您可能正在寻找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)
}
2020-07-02