The iris.PrefixDir
function
The iris.PrefixDir
function wraps an existing "fs" file system and returns a new one which open files by prepending the path with the given "prefix".
go
func PrefixDir(prefix string, fs http.FileSystem) http.FileSystem
It is extremely useful when you use a go-bindata
file to embed both view templates and public static files. With PrefixDir
you can select which directory to use to serve static files and which to render views.
Example
text
│ main.go
| bindata.go
└───data/
└──────views/
│ ...your templates
└──────public/
│ ...your public assets
Let's build the bindata.go
file which will contain the embedded ./data
directory:
sh
$ go get -u github.com/go-bindata/go-bindata/...
$ go-bindata -fs ./data/...
Use the ./data/views
for templates and ./data/public
for file server:
go
templatesFS := iris.PrefixDir("./data/views", AssetFile())
app.RegisterView(iris.HTML(templatesFS, ".html"))
publicFS := iris.PrefixDir("./data/public", AssetFile())
app.HandleDir("/", publicFS)