首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Snap中使用路由和html (Heist)

在Snap中使用路由和html (Heist)
EN

Stack Overflow用户
提问于 2016-02-26 15:35:33
回答 1查看 110关注 0票数 2

我在my-snap-app/snaplets/heist/templates中有模板(my-snap-app/snaplets/heist/templates) (main.tplpage1.tplpage2.tplpage3.tpl)。这是我的Main.hs

代码语言:javascript
复制
import Snap.Http.Server
import Snap.Core
import Snap.Snaplet
import Snap.Snaplet.Heist
import Snap.Util.FileServe
import Snap.Util.GZip
import Heist.Interpreted
import Heist

--.......

data App = App { _heist :: Snaplet (Heist App) }
makeLenses ''App

instance HasHeist App where 
  heistLens = subSnaplet heist

我如何才能:

( a)让我的web应用程序中的所有模板都可用?意思是,我想能够访问page1.tplpage2.tplpage3.tpl on localhost://page1localhost://page2localhost://page3。我是否需要为每个页面添加一条路由,或者是否可以添加一条路由,使它们可以同时访问

2) main.tpl是一个主要的模板(布局)。如何使page[123]使用main.tpl作为主布局模板?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-28 20:43:57

Heist有一个函数serveHeist,它的作用非常类似于serveDirectory。这将为模板/ at路由中的所有模板提供服务。haddocks有一些更多的细节,例如隐藏某些单独没有意义的模板。

要将不同的模板组合在一起,可以考虑像函数这样的模板--您可以将它们应用到其他模板中,其结果本身就是一个模板。这些事情都发生在海斯特本身,而不是突然之间。

<apply>标记执行函数应用程序。参数是<apply>内部的内容,例如,在page1.tpl

代码语言:javascript
复制
<apply>
  <h1>I'm a function parameter</h1>
</apply>

正在应用的函数是main.tpl,参数是<apply-content>

代码语言:javascript
复制
<html><head></head>
  <body>
    <h1>Main template.</h1>
    <apply-content/>
  </body>
</html>

使用<apply><apply-content>执行函数应用程序并计算整个页面,这在/page1路由上是可用的。

盗窃教程中有更多的解释。我想知道函数应用类比对于记忆更多的盗用API是否有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35655761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档