README
go-bindata-assetfs
Serve embedded files from go-bindata with net/http
.
Installation
Install with
$ go get github.com/go-bindata/go-bindata/...
$ go get github.com/elazarl/go-bindata-assetfs/...
Creating embedded data
Usage is identical to go-bindata usage,
instead of running go-bindata
run go-bindata-assetfs
.
The tool will create a bindata_assetfs.go
file, which contains the embedded data.
A typical use case is
$ go-bindata-assetfs data/...
Using assetFS in your code
The generated file provides an assetFS()
function that returns a http.Filesystem
wrapping the embedded files. What you usually want to do is:
http.Handle("/", http.FileServer(assetFS()))
This would run an HTTP server serving the embedded files.
Without running binary tool
You can always just run the go-bindata
tool, and then
use
import "github.com/elazarl/go-bindata-assetfs"
...
http.Handle("/",
http.FileServer(
&assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: "data"}))
to serve files embedded from the data
directory.
SPA applications
For single page applications you can use Fallback: "index.html"
in AssetFS context, so if route doesn't match the pattern it will fallback to file specified.
example
import "github.com/elazarl/go-bindata-assetfs"
...
http.Handle("/",
http.FileServer(
&assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: "data", Fallback: "index.html"}))
Documentation
Overview ¶
assetfs allows packages to serve static content embedded with the go-bindata tool with the standard net/http package.
See https://github.com/go-bindata/go-bindata for more information about embedding binary data with go-bindata.
Usage example, after running
$ go-bindata data/...
use:
http.Handle("/", http.FileServer( &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: "data"}))
Index ¶
Constants ¶
Variables ¶
Functions ¶
Types ¶
type AssetDirectory ¶
AssetDirectory implements http.File interface for a directory
func NewAssetDirectory ¶
func NewAssetDirectory(name string, children []string, fs *AssetFS) *AssetDirectory
type AssetFS ¶
type AssetFS struct { // Asset should return content of file in path if exists Asset func(path string) ([]byte, error) // AssetDir should return list of files in the path AssetDir func(path string) ([]string, error) // AssetInfo should return the info of file in path if exists AssetInfo func(path string) (os.FileInfo, error) // Prefix would be prepended to http requests Prefix string // Fallback file that is served if no other is found Fallback string }
AssetFS implements http.FileSystem, allowing embedded files to be served from net/http package.
type FakeFile ¶
type FakeFile struct { // Path is the path of this file Path string // Dir marks of the path is a directory Dir bool // Len is the length of the fake file, zero if it is a directory Len int64 // Timestamp is the ModTime of this file Timestamp time.Time }
FakeFile implements os.FileInfo interface for a given path and size
Directories
Path | Synopsis |
---|---|