登录
首页 >  Golang >  Go问答

是否可以有多个文件服务器处理程序从不同的文件夹返回?

来源:stackoverflow

时间:2024-03-16 15:36:20 473浏览 收藏

通过创建多个文件服务器处理程序,可以使HTTP服务器从不同的文件夹返回文件。当收到对特定路径的请求时,相应的处理程序将负责从其关联的文件夹中提供文件。这种方法允许服务器组织和管理来自不同来源的文件,例如静态文件和动态生成的文件。通过使用文件服务器处理程序,可以轻松地为用户提供访问不同文件集合的能力,从而增强服务器的功能和灵活性。

问题内容

您好,我得到了这些处理程序:

func StartHttpServer(ipAddr string) {
    mux := http.NewServeMux()
    mux.HandleFunc("/printJson", PrintJsonHandler)
    mux.HandleFunc("/report", RaportHandler)
    mux.HandleFunc("/returnBalancesDates", ReturnBalancesDatesHandler)
    mux.Handle("/", http.FileServer(http.Dir("./static")))
    mux.Handle("/readfiles/", http.FileServer(http.Dir("./reports")))
    err := http.ListenAndServe(ipAddr, mux)
    if err != nil {
        log.Fatal("ERROR: Http Server crashed: ", err)
    }
}

但第二个 fileserver 处理程序似乎没有像我预期的那样从文件夹“reports”返回文件


解决方案


按照您的设置方式,当收到对 /readfiles/file 的请求时,第二个文件服务器会尝试为 ./reports/readfiles/file 提供服务。如果您希望它为 ./reports/file 提供服务,请执行以下操作:

mux.Handle("/readfiles/", http.StripPrefix("/readfiles/",http.FileServer(http.Dir("./reports"))))

理论要掌握,实操不能落!以上关于《是否可以有多个文件服务器处理程序从不同的文件夹返回?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>