2018-03-27 20:23:33 +00:00
# go-bindata-assetfs
2020-05-14 22:45:10 +00:00
Serve embedded files from [go-bindata ](https://github.com/go-bindata/go-bindata ) with `net/http` .
2018-03-27 20:23:33 +00:00
[GoDoc ](http://godoc.org/github.com/elazarl/go-bindata-assetfs )
### Installation
Install with
2020-05-14 22:45:10 +00:00
$ go get github.com/go-bindata/go-bindata/...
2018-03-27 20:23:33 +00:00
$ go get github.com/elazarl/go-bindata-assetfs/...
### Creating embedded data
2020-05-14 22:45:10 +00:00
Usage is identical to [go-bindata ](https://github.com/go-bindata/go-bindata ) usage,
2018-03-27 20:23:33 +00:00
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
2020-05-14 22:45:10 +00:00
```go
import "github.com/elazarl/go-bindata-assetfs"
...
http.Handle("/",
http.FileServer(
& assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: "data"}))
```
2018-03-27 20:23:33 +00:00
to serve files embedded from the `data` directory.
2020-05-14 22:45:10 +00:00
## 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
```go
import "github.com/elazarl/go-bindata-assetfs"
...
http.Handle("/",
http.FileServer(
& assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: "data", Fallback: "index.html"}))
```