wai-middleware-static 0.1.1 → 0.1.2
raw patch · 2 files changed
+9/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
Network/Wai/Middleware/Static.hs view
@@ -6,12 +6,14 @@ import Data.List (isInfixOf) import qualified Data.Map as M import Data.Maybe (fromMaybe)+import Data.Monoid (mconcat) import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy.Char8 as BL import qualified Data.Text as T import qualified Data.Text.Encoding as E import qualified Filesystem.Path.CurrentOS as F-import Network.HTTP.Types (status200)+import Network.HTTP.Types (status200, status404) import System.Directory (doesFileExist) import Network.Wai@@ -41,7 +43,11 @@ staticList :: [(T.Text, T.Text)] -> Middleware staticList fs app req = maybe (app req)- (\fp -> return $ ResponseFile status200 [("Content-Type", getMimeType (F.fromText fp))] (T.unpack fp) Nothing)+ (\fp -> do let fStr = T.unpack fp+ exists <- liftIO $ doesFileExist fStr+ if exists+ then return $ ResponseFile status200 [("Content-Type", getMimeType (F.fromText fp))] fStr Nothing+ else return $ responseLBS status404 [("Content-Type", "text/plain")] $ mconcat ["404: ", BL.pack fStr, " not found."]) ((lookup p fs) `mplus` (lookup (T.cons '/' p) fs)) -- try without and with leading slash where p = (T.intercalate "/" $ pathInfo req)
wai-middleware-static.cabal view
@@ -1,5 +1,5 @@ Name: wai-middleware-static-Version: 0.1.1+Version: 0.1.2 Synopsis: WAI middleware that intercepts requests to static files. Homepage: https://github.com/xich/scotty Bug-reports: https://github.com/xich/scotty/issues