我在my-snap-app/snaplets/heist/templates中有模板(my-snap-app/snaplets/heist/templates) (main.tpl、page1.tpl、page2.tpl、page3.tpl)。这是我的Main.hs
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.tpl,page2.tpl,page3.tpl on localhost://page1,localhost://page2,localhost://page3。我是否需要为每个页面添加一条路由,或者是否可以添加一条路由,使它们可以同时访问
2) main.tpl是一个主要的模板(布局)。如何使page[123]使用main.tpl作为主布局模板?
发布于 2016-02-28 20:43:57
Heist有一个函数serveHeist,它的作用非常类似于serveDirectory。这将为模板/ at路由中的所有模板提供服务。haddocks有一些更多的细节,例如隐藏某些单独没有意义的模板。
要将不同的模板组合在一起,可以考虑像函数这样的模板--您可以将它们应用到其他模板中,其结果本身就是一个模板。这些事情都发生在海斯特本身,而不是突然之间。
<apply>标记执行函数应用程序。参数是<apply>内部的内容,例如,在page1.tpl中
<apply>
<h1>I'm a function parameter</h1>
</apply>正在应用的函数是main.tpl,参数是<apply-content>。
<html><head></head>
<body>
<h1>Main template.</h1>
<apply-content/>
</body>
</html>使用<apply>和<apply-content>执行函数应用程序并计算整个页面,这在/page1路由上是可用的。
盗窃教程中有更多的解释。我想知道函数应用类比对于记忆更多的盗用API是否有用。
https://stackoverflow.com/questions/35655761
复制相似问题