staticserve

package
v0.112.0 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2025 License: MIT Imports: 12 Imported by: 3

README

staticserve

staticserve is a cache-busting HTTP handler for static files. It supports GET operations requesting the file with no encoding or gzip encoding.

For an example how to use it, see jawsboot/README.md.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HeaderCacheControl = []string{"public, max-age=31536000, s-maxage=31536000, immutable"}
View Source
var HeaderVary = []string{"Accept-Encoding"}

Functions

func Handle added in v0.83.0

func Handle(fpath string, data []byte, handleFn HandleFunc) (uri string, err error)

Handle creates a new StaticServe for the fpath that returns the data given. Returns the URI of the resource.

func HandleFS added in v0.83.0

func HandleFS(fsys fs.FS, handleFn HandleFunc, root string, filepaths ...string) (uris []string, err error)

HandleFS creates StaticServe handlers for the filepaths given. Returns the URI(s) of the resources. If an error occurs, the URI of the failed resource will be the empty string.

func MaybePanic added in v0.111.6

func MaybePanic(err error)

func WalkDir added in v0.70.0

func WalkDir(fsys fs.FS, root string, fn func(filename string, ss *StaticServe) (err error)) (err error)

WalkDir walks the file tree rooted at root, calling fn for each file in the tree with the filename having root trimmed (e.g. "root/dir/file.ext" becomes "dir/file.ext").

Types

type HandleFunc added in v0.83.0

type HandleFunc = func(uri string, handler http.Handler)

HandleFunc matches the signature of http.ServeMux.Handle(), but is called without method or parameters for the pattern. E.g. ("/static/filename.1234567.js").

type StaticServe

type StaticServe struct {
	Name        string // the cache-busting file name, e.g. "static/filename.1234567.js"
	ContentType string // Content-Type of the file, e.g. "application/javascript"
	Gz          []byte // gzipped data, will be unpacked as needed
}

func Must added in v0.111.6

func Must(filename string, data []byte) (ss *StaticServe)

Must calls New and panics on error.

func MustNewFS added in v0.111.6

func MustNewFS(fsys fs.FS, root string, fpaths ...string) (ssl []*StaticServe)

func New

func New(filename string, data []byte) (ss *StaticServe, err error)

New returns a StaticServe that serves the given data with a filename like 'filename.12345678.ext'. The filename must have the suffix ".gz" if the data is GZip compressed. The ".gz" suffix will not be part of the filename presented in this case.

func NewFS added in v0.82.0

func NewFS(fsys fs.FS, root, fpath string) (ss *StaticServe, err error)

NewFS reads the file at fpath from fsys and then calls New.

func (*StaticServe) ServeHTTP

func (ss *StaticServe) ServeHTTP(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

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