2017-04-21 266 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