Интеграция соединения времени выполнения с приложением Snap/Heist
Я собираю простое приложение Snap, используя шаблоны Heist. Я хочу напечатать URL-адрес запроса на странице. Тем не менее, вместо запуска моего соединения, на выходе просто есть тег соединения. Я чувствую, что упустил что-то простое, потому что я не могу найти никакой разницы между моим приложением и учебниками, которые я нашел.
Site.hs:
{-# LANGUAGE OverloadedStrings #-}
module Site
( app
) where
import Data.Monoid
import Snap.Core
import Snap.Snaplet
import Snap.Snaplet.Heist
import Heist
import Application
import Control.Monad.Trans.Class (lift)
import Data.Text.Encoding (decodeUtf8)
import qualified Text.XmlHtml as X
currentPath :: SnapletISplice App
currentPath = do
requestPath <- lift $ withRequest (return . rqURI)
return [X.TextNode $ decodeUtf8 requestPath]
app :: SnapletInit App App
app = makeSnaplet "andrewlorente" "My wubsite" Nothing $ do
let config = mempty {
hcInterpretedSplices = "currentPath" ## currentPath
}
h <- nestSnaplet "heist" heist $ heistInit' "templates" config
return $ App h
index.tpl:
<currentPath />
Насколько я могу судить, визуализированный вывод от посещения корневого пути / должен быть чем-то вроде
/
Но на самом деле это
<currentPath></currentPath>
Я нахожусь в конце своего остроумия, пытаясь выяснить, почему мое соединение не работает
1 ответ
hnnnnngh
Это не проблема с кодом вообще. В какой-то момент я переключился на использование изолированной программной среды cabal, но не обновил свой $PATH, поэтому я все еще выполнял старую версию кода, для которой не было определено соединение.