Static middleware
Go to file
Bo-Yi Wu 7cf53f6857
chore: add go1.16 version
2024-02-17 16:16:48 +08:00
example feat: Implement embed folder and a better organisation 2021-03-15 19:11:23 +01:00
test/data/server feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
.gitignore remove vendor files. (#5) 2017-03-15 06:49:17 -05:00
LICENSE Initial commit 2016-12-13 09:40:49 +08:00
README.md doc: Update use embedmd (include file in .md) 2021-03-15 23:30:19 +01:00
embed_folder.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
embed_folder_test.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
go.mod feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
go.sum chore: upgrade gin to v1.5.0 2019-11-28 11:17:02 +08:00
local_file.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
local_file_test.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
serve.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00
serve_test.go feat: Implement embed folder and a better organisation 2021-03-15 19:11:55 +01:00

README.md

static middleware

Build Status codecov Go Report Card GoDoc

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