2013-07-09 15 views
14

Git'te kendi işleyicileri kullanarak kendi verilerimi sunacak bir HTTP sunucusunu başlatmaya çalışıyorum, ancak aynı zamanda dosyaları sunmak için varsayılan http FileServer'ı kullanmak istiyorum.Bazı diğer HTTP işleyicileriyle birlikte FileServer işleyicisi

FileServer öğesinin bir URL alt dizininde çalışması için sorun yaşıyorum. Ben localhost yerel dizini bulmak için bekliyordum

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

:

Bu kod çalışmıyor 1234/dosyalar/ama bir 404 page not found döndürür.

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

Ama şimdi benim dosyalarım kök dizininde erişilebilir ve görülebilir: Ben/konumuna dosyasunucusu ait işleyici adresini değiştirirseniz

Ancak, işe yarıyor.

Kökünden farklı bir URL'den dosya sunmayı nasıl sağlayabilirim? Buraya bakın

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

:

cevap

İlgili konular