servant-server-0.19.2: A family of combinators for defining webservices APIs and serving them
Safe Haskell None
Language Haskell2010

Servant.Server.StaticFiles

Contents

Description

This module defines server-side handlers that lets you serve static files.

The most common needs for a web application are covered by serveDirectoryWebApp , but the other variants allow you to use different StaticSettings and serveDirectoryWith even allows you to specify arbitrary StaticSettings to be used for serving static files.

Synopsis

Documentation

serveDirectoryWebApp :: FilePath -> ServerT Raw m Source #

Serve anything under the specified directory as a Raw endpoint.

type MyApi = "static" :> Raw

server :: Server MyApi
server = serveDirectoryWebApp "/var/www"

would capture any request to /static/<something> and look for <something> under /var/www .

It will do its best to guess the MIME type for that file, based on the extension, and send an appropriate Content-Type header if possible.

If your goal is to serve HTML, CSS and Javascript files that use the rest of the API as a webapp backend, you will most likely not want the static files to be hidden behind a /static/ prefix. In that case, remember to put the serveDirectoryWebApp handler in the last position, because servant will try to match the handlers in order.

Corresponds to the defaultWebAppSettings StaticSettings value.

serveDirectoryWith :: StaticSettings -> ServerT Raw m Source #

Alias for staticApp . Lets you serve a directory with arbitrary StaticSettings . Useful when you want particular settings not covered by the four other variants. This is the most flexible method.

Deprecated

serveDirectory :: FilePath -> ServerT Raw m Source #

Deprecated: Use serveDirectoryFileServer instead

Same as serveDirectoryFileServer . It used to be the only file serving function in servant pre-0.10 and will be kept around for a few versions, but is deprecated.