2017-04-21 261 views
0

我对golang相当陌生,并且发现自己对一个简单的文件服务程序感到沮丧。我怀疑我的路由器r的处理程序中的文件前缀/目录有问题。我已经尝试了许多不同的目录格式。我想要的服务的HTML文件是$ HOME/Documents/TEST/Login在我的系统上。下面是我的代码,注意{address}代替了这个ip地址。404使用大猩猩/多路复用golang库时出错

package main 

    import (
     "log" 
     "github.com/gorilla/mux" 
     "net/http" 
     "time" 
    ) 

    func main() { 
    r := mux.NewRouter() 
    r.PathPrefix("/Login/").Handler(http.StripPrefix("/Login/", 
    http.FileServer(http.Dir("$HOME/Documents/TEST/Login")))) 

    srv := &http.Server{ 
     Handler:  r, 
     Addr:   "{address}:9999", 
     WriteTimeout: 600 * time.Second, 
     ReadTimeout: 600 * time.Second, 
    } 

    log.Fatal(srv.ListenAndServe()) 
    } 

回答

0

Go不会解释$HOME。使用明确的路径,如/home/username/Documents/TEST/Login/

+0

好像修复了404错误,我还必须将“/ Login /”前缀更改为“/” – Clarko

+0

如果您不喜欢绝对路径,请使用'currentUser.HomeDir'来获取主路径。请访问https://golang.org/pkg/os/user/#User – lowatt