README.md

# Raxx.Static

**[Raxx](https://github.com/crowdhailer/raxx) middleware for serving static content.**

[![Hex pm](http://img.shields.io/hexpm/v/raxx_static.svg?style=flat)](https://hex.pm/packages/raxx_static)
[![Build Status](https://secure.travis-ci.org/CrowdHailer/raxx_static.svg?branch=master
"Build Status")](https://travis-ci.org/CrowdHailer/raxx_static)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)

- [Install from hex.pm](https://hex.pm/packages/raxx_static)
- [Documentation available on hexdoc](https://hexdocs.pm/raxx_static)
- [Raxx discussion on slack](https://elixir-lang.slack.com/messages/C56H3TBH8/)

## Getting Started

Add routes for static assets to any server module.

```elixir
defmodule MyApp.WWW do
  def start_link(config, server_options) do
    stack =
      Raxx.Stack.new(
        [
          {Raxx.Static, source: "dir/of/public/content"}
          # Other middleware
        ],
        {MyApp.WWW.Router, config}
      )

    Ace.HTTP.Service.start_link(stack, server_options)
  end
end
```

### Read files at compile time.

To read source files only once use `Raxx.Static.setup/1`.
This takes the same arguments as above.

```elixir
@static_setup Raxx.Static.setup(source: "dir/of/public/content")

# in stack
{Raxx.Static, @static_setup}
```