elli middleware to serve static files.
This middleware allows you to serve static files with elli by mapping a
prefix to a local folder on your server. A prefix can be of arbritrary length,
the following are all valid prefixes: <<"/">>, <<"/prefix">>,
<<"/some/longer/prefix/">>, etc.
Example config for serving local files in /tmp under /prefix, e.g.
GET /prefix/some/file.txt will serve /tmp/some/file.txt.
-module(my_elli_stuff).
-export([start_link/0]).
start_link() ->
    FileserveConfig = [{prefix, <<"/prefix">>},
                       {path, <<"/tmp">>},
                       {charset, <<"utf-8">>},
                       {default, <<"index.html">>}],
    Config = [{mods, [{elli_fileserve, FileserveConfig}]}],
    elli:start_link([{callback, elli_middleware},
                     {callback_args, Config}]).
If your prefix is dynamic, use regular expressions to match it. The following
example matches all pathes that contain /assets somewhere.
FileserveConfig = [{prefix, {regex, <<".+/assets">>}},
                   {path, <<"/www">>}],
Resolves to:
| Path | Result | 
|---|---|
| /foo/assets/file.zip | /www/file.zip | 
| /bar/assets/file.zip | /www/file.zip | 
| /assets/file.zip | ignore | 
- Serve index.html?files for request paths ending with/, if available.
- Support file listing.
| elli_fileserve |