【问题标题】:How to work with html files in snap?如何快速处理 html 文件?
【发布时间】:2016-02-22 11:35:01
【问题描述】:

我开始学习 snap 框架。我正在尝试以简单的方式呈现 html 文件和布局 html 文件(“模板”)。也就是说,我有一个共享的 html 文件,我想将其用作我网站中所有页面的模板。我怎样才能做到这一点?还有一个类似的问题,如何渲染 html 文件?

更新:

我不想添加新的抽象级别。有什么可以避免使用 Heist 的吗?

【问题讨论】:

  • 你看this page了吗?
  • @Bakuriu,我不想添加新的抽象级别。有什么可以避免使用 Heist 的吗?

标签: haskell haskell-snap-framework


【解决方案1】:

提供静态文件的最简单方法是使用serveFile。你的路线中可能会有这样的东西:

[ ...your routes here
, ("markup", serveFile "mymarkup.html")
]

这使得当用户访问http://yoursite/markup 时,您运行应用程序的任何目录中的文件mymarkup.html 都会得到服务。如果您尝试提供许多不同的 HTML 文件,更好的解决方案是serveDirectory。你可以这样使用它:

[ ...your routes here
, ("static", serveDirectory "html")
]

这使得当用户访问http://yoursite/static/mymarkup.html 时,文件html/mymarkup.html 得到服务。

对于如何使一个文件成为所有页面的模板的问题,这正是 Heist 为您所做的!当然有一些方法可以避免使用 Heist,但您可能会重新发明 Heist 为您所做的很多事情。在您所询问的基本级别上,Heist 非常简单。所有有效的 HTML 文件都是有效的 Heist 模板。我建议像 Bakuriu 提到的那样通读 tutorial。我相信 Heist 的 apply 标签几乎正是您正在寻找的。

【讨论】:

  • 我可以将 Heist 与任何其他 Web 框架(例如 Scotty)一起使用吗?
  • 是的。 Heist 专门设计为不依赖于 Snap 的任何内容。但是,与使用 Snap 相比,您可能需要使用其他框架编写更多的基础架构代码。例如,this package 拥有少量的基础架构代码,这使得 Heist 与 Happstack 一起使用变得更加容易。
猜你喜欢
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 2010-09-13
相关资源
最近更新 更多