# The 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

```
│   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)
```
