summaryrefslogtreecommitdiff
path: root/src/server/ServeStaticFile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ServeStaticFile.hs')
-rw-r--r--src/server/ServeStaticFile.hs20
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