2013-07-09 3 views
14

GoでHTTPサーバを起動しようとしていますが、ハンドラを使用して自分自身のデータを処理しますが、同時にデフォルトのhttp FileServerを使用してファイルを処理したいとします。他のHTTPハンドラを使用したFileServerハンドラ

FileServerのハンドラをURLサブディレクトリで動作させるのに問題があります。

このコードは動作していない:1234 /ファイル/それは404 page not foundを返します。

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!") 
} 

私はローカルホストにローカルディレクトリを見つけるために期待していました。

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

をしかし、今、私のファイルは、ルートディレクトリにアクセスし、表示されている:私は/にファイルサーバのハンドラ・アドレスを変更した場合

しかし、それは動作します。

rootとは異なるURLからファイルを提供するにはどうすればよいですか?ここを参照してください

http.Handle("/files/", http.StripPrefix("/files/", http.FileServer(http.Dir(".")))) 

答えて

関連する問題