In meinem Diener/Wai app Ich möchte redict alle Anfragen von "domain.com" auf "www.domain.com"Unable Mustervergleich auf Word8
{-# LANGUAGE OverloadedStrings #-}
--.......
app :: Application
app req respond = do
case requestHeaderHost req of
Just host -> do
case BS.unpack host of
"www":rest -> respond =<< redirect' HttpTp.status302 [] "domain.com"
_ -> undefined
Nothing -> undefined
Der Fehler ist
zu tunNo instance for (Data.String.IsString GHC.Word.Word8)
arising from the literal ‘"www"’
In the pattern: "www"
Ich weiß, was es bedeutet, und ich denke, dass die Klasse Show hätte für Word8 implementiert werden müssen, und wenn nicht, muss es einen Grund geben. Vielleicht mache ich es falsch?
Wie kann ich das beheben oder es noch besser machen?
Update:
Ich kann es nicht zu kompilieren:
-- 1
Just host -> do
case BS.isPrefixOf (BS.pack $ show "www") host of
-- 2
Just host -> do
case Text.isPrefixOf (Text.pack $ show "www") host of
-- 3
Just host -> do
case DL.isPrefixOf "www" host of
Es gibt immer Mismatch geben.
Vielleicht wird dies helfen (wenn es tut, bedenken Sie, dass das Einfügen von Fehlermeldungen in Google-Suche Wunder bewirken kann): http://StackOverflow.com/Questions/3753445/Haskell-A-Problem-mit-dem- einfachsten -wai-Beispiel – Kapol