是否可以使用Ghcjs,Haste,Elm等服务器端渲染Haskell前端?

时间:2015-09-26 08:21:50

标签: haskell elm web-frontend ghcjs haste

我认为Haskell提供了出色的功能。也适用于Web开发。但是,我想念的一个功能。服务器端呈现。 原因是Google索引抓取工具和预渲染以提高移动设备的性能。

服务器端是否可以使用Ghcjs,Haste,Elm或其他一些Haskell-> JS编译器渲染Haskell前端?

2 个答案:

答案 0 :(得分:4)

我不相信亚历山大回答了这个问题。

问题在于Haskell Web框架是否进行JavaScript的服务器端呈现 - vanilla JS或JS-via-Haskell(GHCJS,Fay等)。我的理解是Yesod不预先渲染JS(即执行JS并提供生成的HTML)。相反,Yesod通过hamlet服务器端生成HTML(或者使用blaze-html或lucid,具体取决于您的偏好)。

我能为Haskell服务器端JS渲染(对于Angular)找到的唯一库是:

https://github.com/danchoi/ngrender

但它还处于测试阶段。

如果有其他图书馆/解决方案,我很乐意听到它们。这对我来说也是一个问题。我想在客户端上使用purescript-halogen,但是...... SEO。

编辑:目前,最好的选择可能是使用nginx作为你的Haskell服务器前面的负载均衡器,使用prerender.io来提供渲染的JS页面来搜索机器人:

https://github.com/prerender/prerender

https://gist.github.com/thoop/8165802

答案 1 :(得分:3)

Stock Yesod scaffold对HTML进行服务器端呈现,并为HTML,CSS和JS提供自定义预处理语言。你应该能够整合Fay / Purescript而不会有太大的问题,因为它们已经存在了一段时间,并且yesod带有至少其中一个的脚手架。

对于类似GHCJS集成的内容,您会看到即将推出的stack工具版本(例如this issue)已经取得了很多进展。理论上,这将使全栈Haskell无需太多麻烦即可实现。现在,我的理解是整合GHCJS并非易事。