Browse Source

Improve static file handler guide chapter

Add more infos about MIME types and the file option.
Loïc Hoguin 12 years ago
parent
commit
a2f4703e5e
2 changed files with 31 additions and 2 deletions
  1. 30 2
      guide/static_handlers.md
  2. 1 0
      guide/toc.md

+ 30 - 2
guide/static_handlers.md

@@ -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 = [
@@ -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 - 0
guide/toc.md

@@ -34,6 +34,7 @@ Cowboy User Guide
  *  [Static handlers](static_handlers.md)
    *  Purpose
    *  Usage
+   *  MIME type
  *  [Request object](req.md)
    *  Purpose
    *  Request