首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Snap/Heist而不自动为每个模板创建路由

如何使用Snap/Heist而不自动为每个模板创建路由
EN

Stack Overflow用户
提问于 2016-09-01 17:59:26
回答 1查看 62关注 0票数 2

是否有可能以这样的方式使用Snap/Heist,使每个模板都有一个自动生成的路由?例如,假设我有一个带有<apply-content/>标记的名为"outline“的模板,以及一个调用<apply template="outline">的名为"index”的模板。我希望“索引”模板在路由"/“下可见,而”大纲“模板没有路由。我试过以下几种方法:

  • 调用heistInit并将index.tploutline.tpl放在templates目录中。这会自动创建“大纲”的路径。
  • outline.tpl放在单独的目录中,并调用addTemplatesAt。这也会自动为outline创建一个路由。
  • 使用空Config调用heistInit'而不是heistInit,如下所示: H <- nestSnaplet“盗用$ heistInit‘”模板(Heist.emptyHeistConfig { Heist.Internal.Types._hcNamespace = "“})

做最后一种方式意味着我必须手工添加路线,这是可以的。但是,即使我可以使用renderheistServeSingle为模板提供服务,但当使用<apply>时,模板无法相互看到。

我知道这感觉只是一个“小”的问题,我可以让助手-模板是可见的,但对我来说,这是草率。我很想知道http://snapframework.com是否做了些什么来解决这个问题,但是看起来他们的助手模板是可见的,例如:http://snapframework.com/nav

EN

回答 1

Stack Overflow用户

发布于 2016-11-10 07:17:01

就像Libby说的那样,打算的解决方案是在模板名称前加上下划线,以使它们无法使用。我不知道她看到了什么,实际上是为那些模板服务的。这一行代码检查:

https://github.com/snapframework/snap/blob/master/src/Snap/Snaplet/HeistNoClass.hs#L320

如果这不起作用,那么请用一种让我重现问题的方法来提交一个bug。

可以使用的第二种方法是调用heistInit' os,不隐式地为您添加heistServe。这对您是否可以使用<apply>查看模板没有影响,因为它不会通过路径检索模板。我怀疑如果您在那里遇到问题,可能是因为您使用了emptyHeistConfig,然后没有设置scTemplateLocations字段(scTemplateLocations)。

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

https://stackoverflow.com/questions/39278102

复制
相关文章

相似问题

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