繁体   English   中英

将运行时接头与Snap / Heist应用程序集成

[英]Integrating a runtime splice with a Snap/Heist app

我正在使用Heist模板整理一个简单的Snap应用程序。 我想将请求网址打印到页面中。 但是,除了运行我的接头之外,输出仅包含splice标签。 我觉得我已经忽略了一些简单的事情,因为我找不到我的应用程序与所找到的教程之间的任何区别。

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>

我正竭尽全力试图弄清楚为什么我的接头没有打起来。

hnnnnngh

这根本不是代码的问题。 我曾经在某个时候改用Cabal沙箱,但没有更新$ PATH,因此我仍在执行未定义接头的旧版本代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM