2014-03-26 28 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

相關問題