bc1c3dccde
- Update `github.com/bytedance/sonic` to version `1.11.6` - Add `github.com/bytedance/sonic/loader` version `0.1.1` - Replace `github.com/chenzhuoyu/base64x` with `github.com/cloudwego/base64x` version `0.1.4` - Replace `github.com/chenzhuoyu/iasm` with `github.com/cloudwego/iasm` version `0.2.0` - Update `github.com/go-playground/validator/v10` to version `10.20.0` - Update `github.com/pelletier/go-toml/v2` to version `2.2.2` - Update `golang.org/x/arch` to version `0.8.0` - Update `golang.org/x/crypto` to version `0.22.0` - Update `golang.org/x/net` to version `0.24.0` - Update `golang.org/x/sys` to version `0.20.0` - Update `golang.org/x/text` to version `0.15.0` - Update `google.golang.org/protobuf` to version `1.34.0` Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> |
||
---|---|---|
.github | ||
_example | ||
test/data/server | ||
.gitignore | ||
.golangci.yml | ||
.goreleaser.yaml | ||
LICENSE | ||
README.md | ||
embed_folder.go | ||
embed_folder_test.go | ||
go.mod | ||
go.sum | ||
local_file.go | ||
local_file_test.go | ||
serve.go | ||
serve_test.go |
README.md
static middleware
Static middleware
Usage
Start using it
Download and install it:
go get github.com/gin-contrib/static
Import it in your code:
import "github.com/gin-contrib/static"
Canonical example
See the example
Serve local file
package main
import (
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// if Allow DirectoryIndex
//r.Use(static.Serve("/", static.LocalFile("/tmp", true)))
// set prefix
//r.Use(static.Serve("/static", static.LocalFile("/tmp", true)))
r.Use(static.Serve("/", static.LocalFile("/tmp", false)))
r.GET("/ping", func(c *gin.Context) {
c.String(200, "test")
})
// Listen and Server in 0.0.0.0:8080
r.Run(":8080")
}
Serve embed folder
package main
import (
"embed"
"fmt"
"net/http"
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
)
//go:embed data
var server embed.FS
func main() {
r := gin.Default()
r.Use(static.Serve("/", static.EmbedFolder(server, "data/server")))
r.GET("/ping", func(c *gin.Context) {
c.String(200, "test")
})
r.NoRoute(func(c *gin.Context) {
fmt.Printf("%s doesn't exists, redirect on /\n", c.Request.URL.Path)
c.Redirect(http.StatusMovedPermanently, "/")
})
// Listen and Server in 0.0.0.0:8080
r.Run(":8080")
if err := r.Run(":8080"); err != nil {
log.Fatal(err)
}
}