我认为Haskell提供了出色的功能。也适用于Web开发。但是,我想念的一个功能。服务器端呈现。 原因是Google索引抓取工具和预渲染以提高移动设备的性能。
服务器端是否可以使用Ghcjs,Haste,Elm或其他一些Haskell-> JS编译器渲染Haskell前端?
答案 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页面来搜索机器人:
答案 1 :(得分:3)
Stock Yesod scaffold对HTML进行服务器端呈现,并为HTML,CSS和JS提供自定义预处理语言。你应该能够整合Fay / Purescript而不会有太大的问题,因为它们已经存在了一段时间,并且yesod带有至少其中一个的脚手架。
对于类似GHCJS集成的内容,您会看到即将推出的stack
工具版本(例如this issue)已经取得了很多进展。理论上,这将使全栈Haskell无需太多麻烦即可实现。现在,我的理解是整合GHCJS并非易事。