2013-07-09 102 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提供文件?

回答