Преглед изворни кода

Using absolutePath in static properly

Manu Mtz-Almeida пре 11 година
родитељ
комит
030706c39a
2 измењених фајлова са 8 додато и 8 уклоњено
  1. 2 2
      gin_test.go
  2. 6 6
      routergroup.go

+ 2 - 2
gin_test.go

@@ -146,7 +146,7 @@ func TestHandleStaticFile(t *testing.T) {
 
 
 	// TEST
 	// TEST
 	if w.Code != 200 {
 	if w.Code != 200 {
-		t.Errorf("Response code should be Ok, was: %s", w.Code)
+		t.Errorf("Response code should be 200, was: %d", w.Code)
 	}
 	}
 	if w.Body.String() != "Gin Web Framework" {
 	if w.Body.String() != "Gin Web Framework" {
 		t.Errorf("Response should be test, was: %s", w.Body.String())
 		t.Errorf("Response should be test, was: %s", w.Body.String())
@@ -168,7 +168,7 @@ func TestHandleStaticDir(t *testing.T) {
 	// TEST
 	// TEST
 	bodyAsString := w.Body.String()
 	bodyAsString := w.Body.String()
 	if w.Code != 200 {
 	if w.Code != 200 {
-		t.Errorf("Response code should be Ok, was: %s", w.Code)
+		t.Errorf("Response code should be 200, was: %d", w.Code)
 	}
 	}
 	if len(bodyAsString) == 0 {
 	if len(bodyAsString) == 0 {
 		t.Errorf("Got empty body instead of file tree")
 		t.Errorf("Got empty body instead of file tree")

+ 6 - 6
routergroup.go

@@ -102,14 +102,14 @@ func (group *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) {
 // use :
 // use :
 //     router.Static("/static", "/var/www")
 //     router.Static("/static", "/var/www")
 func (group *RouterGroup) Static(relativePath, root string) {
 func (group *RouterGroup) Static(relativePath, root string) {
-	handler := group.createStaticHandler(relativePath, root)
-	group.GET(relativePath, handler)
-	group.HEAD(relativePath, handler)
-}
-
-func (group *RouterGroup) createStaticHandler(relativePath, root string) func(*Context) {
 	absolutePath := group.calculateAbsolutePath(relativePath)
 	absolutePath := group.calculateAbsolutePath(relativePath)
+	handler := group.createStaticHandler(absolutePath, root)
 	absolutePath = path.Join(absolutePath, "/*filepath")
 	absolutePath = path.Join(absolutePath, "/*filepath")
+	group.GET(absolutePath, handler)
+	group.HEAD(absolutePath, handler)
+}
+
+func (group *RouterGroup) createStaticHandler(absolutePath, root string) func(*Context) {
 	fileServer := http.StripPrefix(absolutePath, http.FileServer(http.Dir(root)))
 	fileServer := http.StripPrefix(absolutePath, http.FileServer(http.Dir(root)))
 	return func(c *Context) {
 	return func(c *Context) {
 		fileServer.ServeHTTP(c.Writer, c.Request)
 		fileServer.ServeHTTP(c.Writer, c.Request)