2013-07-09 91 views
14

我試圖在Go中啓動一個HTTP服務器,該服務器將使用我自己的處理程序提供自己的數據,但同時我想使用默認的http FileServer來提供文件。FileServer與其他一些HTTP處理程序處理程序

我有問題要使FileServer的處理程序在URL子目錄中工作。

這個代碼不工作:

package main 

import (
     "fmt" 
     "log" 
     "net/http" 
) 

func main() { 
     http.Handle("/files/", http.FileServer(http.Dir("."))) 
     http.HandleFunc("/hello", myhandler) 

     err := http.ListenAndServe(":1234", nil) 
     if err != nil { 
       log.Fatal("Error listening: ", err) 
     } 
} 

func myhandler(w http.ResponseWriter, req *http.Request) { 
     fmt.Fprintln(w, "Hello!") 
} 

我希望找到在本地主機的本地目錄:1234 /文件/但它返回一個404 page not found

不過,如果我更改了文件服務器的處理器地址/,它的工作原理:

 /* ... */ 
     http.Handle("/", http.FileServer(http.Dir("."))) 

但現在我的文件是在根目錄訪問和查看。

我怎樣才能使它從不同於根的URL提供文件?

回答