README

go-bindata-assetfs

Serve embedded files from go-bindata with net/http.

GoDoc

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"}))
Expand ▾ Collapse ▴

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

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type AssetDirectory

    type AssetDirectory struct {
    	AssetFile
    	ChildrenRead int
    	Children     []os.FileInfo
    }

      AssetDirectory implements http.File interface for a directory

      func NewAssetDirectory

      func NewAssetDirectory(name string, children []string, fs *AssetFS) *AssetDirectory

      func (*AssetDirectory) Readdir

      func (f *AssetDirectory) Readdir(count int) ([]os.FileInfo, error)

      func (*AssetDirectory) Stat

      func (f *AssetDirectory) Stat() (os.FileInfo, error)

      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.

        func (*AssetFS) Open

        func (fs *AssetFS) Open(name string) (http.File, error)

        type AssetFile

        type AssetFile struct {
        	*bytes.Reader
        	io.Closer
        	FakeFile
        }

          AssetFile implements http.File interface for a no-directory file with content

          func NewAssetFile

          func NewAssetFile(name string, content []byte, timestamp time.Time) *AssetFile

          func (*AssetFile) Readdir

          func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error)

          func (*AssetFile) Size

          func (f *AssetFile) Size() int64

          func (*AssetFile) Stat

          func (f *AssetFile) Stat() (os.FileInfo, error)

          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

            func (*FakeFile) IsDir

            func (f *FakeFile) IsDir() bool

            func (*FakeFile) ModTime

            func (f *FakeFile) ModTime() time.Time

            func (*FakeFile) Mode

            func (f *FakeFile) Mode() os.FileMode

            func (*FakeFile) Name

            func (f *FakeFile) Name() string

            func (*FakeFile) Size

            func (f *FakeFile) Size() int64

            func (*FakeFile) Sys

            func (f *FakeFile) Sys() interface{}

            Source Files

            Directories

            Path Synopsis