Skip to content

Commit

Permalink
Improve static file handler guide chapter
Browse files Browse the repository at this point in the history
Add more infos about MIME types and the file option.
  • Loading branch information
essen committed Apr 25, 2013
1 parent beaae7b commit a2f4703
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 2 deletions.
32 changes: 30 additions & 2 deletions guide/static_handlers.md
Expand Up @@ -19,8 +19,7 @@ Static handlers are pre-written REST handlers. They only need
to be specified in the routing information with the proper options.

The following example routing serves all files found in the
`priv_dir/static/` directory of the application `my_app`. It uses
a mimetypes library to figure out the files' content types.
`priv_dir/static/` directory of the application `my_app`.

``` erlang
Dispatch = [
Expand All @@ -32,3 +31,32 @@ Dispatch = [
]}
].
```

You can also serve a single file specifically. A common example
would be an `index.html` file to be served when the path `/`
is requested. The following example will serve the `priv/index.html`
file from the application `my_app`.

``` erlang
Dispatch = [
{'_', [
{"/", cowboy_static, [
{directory, {priv_dir, my_app, []}},
{file, "index.html"},
{mimetypes, {fun mimetypes:path_to_mimes/2, default}}
]}
]}
].
```

MIME type
---------

Cowboy does not provide any default for MIME types. This means
that unless you specify the `mimetypes` option, all files will
be sent as `application/octet-stream`, which the browser will
not try to interpret, instead trying to make you download it.

In the examples above we used the
[mimetypes application](https://github.com/spawngrid/mimetypes)
to find the MIME type from the file's extension.
1 change: 1 addition & 0 deletions guide/toc.md
Expand Up @@ -34,6 +34,7 @@ Cowboy User Guide
* [Static handlers](static_handlers.md)
* Purpose
* Usage
* MIME type
* [Request object](req.md)
* Purpose
* Request
Expand Down

0 comments on commit a2f4703

Please sign in to comment.