在我的 Servant/Wai 应用程序中,我想将所有请求从“domain.com”redict 到“www.domain.com”
{-# 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
错误是
No instance for (Data.String.IsString GHC.Word.Word8)
arising from the literal ‘"www"’
In the pattern: "www"
我知道这意味着什么,我认为应该已经为 Word8 实现了 Show 类,如果没有,那肯定是有原因的。也许我做错了?
我该如何解决这个问题或以另一种更好的方式来解决这个问题?
更新:
我无法编译:
-- 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
总是有类型不匹配。