diff options
Diffstat (limited to 'src/server/ServeStaticFile.hs')
| -rw-r--r-- | src/server/ServeStaticFile.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/server/ServeStaticFile.hs b/src/server/ServeStaticFile.hs new file mode 100644 index 000000000..f2bbc3e81 --- /dev/null +++ b/src/server/ServeStaticFile.hs @@ -0,0 +1,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"
\ No newline at end of file |
