beego: improve the static file server

This commit is contained in:
astaxie 2014-08-04 15:31:27 +08:00
parent 1d36b19cab
commit 474a16a7a0
3 changed files with 14 additions and 5 deletions

View File

@ -383,10 +383,6 @@ func initBeforeHttpRun() {
middleware.AppName = AppName
middleware.RegisterErrorHandler()
for u, _ := range StaticDir {
Get(u, serverStaticRouter)
Get(u+"/*", serverStaticRouter)
}
if EnableDocs {
Get("/docs", serverDocs)
Get("/docs/*", serverDocs)

View File

@ -32,7 +32,8 @@ import (
const (
// default filter execution points
BeforeRouter = iota
BeforeStatic = iota
BeforeRouter
BeforeExec
AfterExec
FinishRouter
@ -577,6 +578,15 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
return false
}
if do_filter(BeforeStatic) {
goto Admin
}
serverStaticRouter(context)
if w.started {
goto Admin
}
// session init
if SessionOn {
context.Input.CruSession = GlobalSessions.SessionStart(w, r)

View File

@ -22,6 +22,9 @@ import (
)
func serverStaticRouter(ctx *context.Context) {
if ctx.Input.Method() != "GET" && ctx.Input.Method() != "HEAD" {
return
}
requestPath := path.Clean(ctx.Input.Request.URL.Path)
for prefix, staticDir := range StaticDir {
if len(prefix) == 0 {