summaryrefslogtreecommitdiff
path: root/src/server/ServeStaticFile.hs
blob: f2bbc3e8177ce4d7dec2563119add9babe2cd8b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module ServeStaticFile where
import System.FilePath
import Network.CGI(setHeader,outputFPS,liftIO)
import qualified Data.ByteString.Lazy.Char8 as BS

serveStaticFile path =
  do setHeader "Content-Type" (contentTypeFromExt (takeExtension path))
     outputFPS =<< liftIO (BS.readFile path)

contentTypeFromExt ext =
  case ext of
    ".html" -> "text/html; charset=\"iso8859-1\""
    ".htm" -> "text/html; charset=\"iso8859-1\""
    ".xml" -> "text/xml; charset=\"iso8859-1\""
    ".txt" -> "text/plain; charset=\"iso8859-1\""
    ".css" -> "text/css; charset=\"iso8859-1\""
    ".js" -> "text/javascript; charset=\"iso8859-1\""
    ".png" -> "image/png"
    ".jpg" -> "image/jpg"
    _ -> "application/octet-stream"