Safe Haskell | None |
---|---|
Language | Haskell2010 |
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.
- serveDirectoryWebApp :: FilePath -> Server Raw
- serveDirectoryWebAppLookup :: ETagLookup -> FilePath -> Server Raw
- serveDirectoryFileServer :: FilePath -> Server Raw
- serveDirectoryEmbedded :: [(FilePath, ByteString)] -> Server Raw
- serveDirectoryWith :: StaticSettings -> Server Raw
- serveDirectory :: FilePath -> Server Raw
Documentation
serveDirectoryWebApp :: FilePath -> Server Raw 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.
serveDirectoryWebAppLookup :: ETagLookup -> FilePath -> Server Raw Source #
Same as serveDirectoryWebApp
, but uses webAppSettingsWithLookup
.
serveDirectoryFileServer :: FilePath -> Server Raw Source #
Same as serveDirectoryWebApp
, but uses defaultFileServerSettings
.
serveDirectoryEmbedded :: [(FilePath, ByteString)] -> Server Raw Source #
Uses embeddedSettings
.
serveDirectoryWith :: StaticSettings -> Server Raw 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 -> Server Raw 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.