2019-03-31 21:41:29 -05:00
|
|
|
package staticfiles
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
|
|
|
|
"bitbucket.org/lightcodelabs/caddy2"
|
|
|
|
"bitbucket.org/lightcodelabs/caddy2/modules/caddyhttp"
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
caddy2.RegisterModule(caddy2.Module{
|
|
|
|
Name: "http.responders.static_files",
|
2019-04-25 14:54:48 -05:00
|
|
|
New: func() (interface{}, error) { return new(StaticFiles), nil },
|
2019-03-31 21:41:29 -05:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
// StaticFiles implements a static file server responder for Caddy.
|
|
|
|
type StaticFiles struct {
|
|
|
|
Root string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (sf StaticFiles) ServeHTTP(w http.ResponseWriter, r *http.Request) error {
|
|
|
|
http.FileServer(http.Dir(sf.Root)).ServeHTTP(w, r)
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Interface guard
|
2019-04-25 14:54:48 -05:00
|
|
|
var _ caddyhttp.Handler = (*StaticFiles)(nil)
|