2014-03-26 4 views
2

Heist 템플릿을 사용하여 간단한 Snap 앱을 구성하고 있습니다. 요청 URL을 페이지에 인쇄하고 싶습니다. 그러나, 내 스플 라이스를 실행하는 대신 출력에는 스플 라이스 태그 만 있습니다. 내 앱과 내가 찾은 튜토리얼간에 차이점을 찾을 수 없기 때문에 간단한 것을 간과 한 것 같다.Snap/Heist 앱으로 런타임 스플 라이스 통합

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를 업데이트하지 않았기 때문에 아직 정의 된 스플 라이스가없는 이전 버전의 코드를 실행하고있었습니다.

+0

또한 템플릿을 HeistConfig에 포함시켜야합니다. – mightybyte