Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elazarl/go-bindata-assetfs
Serves embedded files from `jteeuwen/go-bindata` with `net/http`
https://github.com/elazarl/go-bindata-assetfs
Last synced: 5 days ago
JSON representation
Serves embedded files from `jteeuwen/go-bindata` with `net/http`
- Host: GitHub
- URL: https://github.com/elazarl/go-bindata-assetfs
- Owner: elazarl
- License: bsd-2-clause
- Created: 2014-07-13T15:36:33.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-04-13T08:57:33.000Z (over 2 years ago)
- Last Synced: 2024-08-05T06:02:03.558Z (3 months ago)
- Language: Go
- Size: 31.3 KB
- Stars: 870
- Watchers: 27
- Forks: 118
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - go-bindata-assetfs - Serves embedded files from `jteeuwen/go-bindata` with `net/http` (Go)
README
# go-bindata-assetfs
Serve embedded files from [go-bindata](https://github.com/go-bindata/go-bindata) with `net/http`.
[GoDoc](http://godoc.org/github.com/elazarl/go-bindata-assetfs)
### 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](https://github.com/go-bindata/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
```go
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
```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"}))
```