static

package module
v1.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2025 License: MIT Imports: 9 Imported by: 817

README

static middleware

Run Tests 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
  if err := r.Run(":8080"); err != nil {
    log.Fatal(err)
  }
}

Documentation

Index

Constants

View Source
const INDEX = "index.html"

Variables

This section is empty.

Functions

func LocalFile

func LocalFile(root string, indexes bool) *localFileSystem

func Serve

func Serve(urlPrefix string, fs ServeFileSystem) gin.HandlerFunc

Serve returns a middleware handler that serves static files in the given directory.

func ServeRoot

func ServeRoot(urlPrefix, root string) gin.HandlerFunc

Types

type ServeFileSystem

type ServeFileSystem interface {
	http.FileSystem
	Exists(prefix string, path string) bool
}

func EmbedFolder added in v1.1.0

func EmbedFolder(fsEmbed embed.FS, targetPath string) (ServeFileSystem, error)

EmbedFolder function embeds the target folder from the embedded file system into the ServeFileSystem. If an error occurs during the embedding process, it returns the error message.

Directories

Path Synopsis
_example

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL