我认为Haskell提供了非常棒的特性。也适用于Web开发。然而,我遗漏了一个特性。服务器端渲染。原因是谷歌索引爬虫和预渲染,以提高移动设备的性能。
是否可以使用Ghcjs、Haste、Elm或其他Haskell->JS编译器在服务器端呈现Haskell前端?
发布于 2015-09-26 22:28:37
我不相信Alexandr已经回答了这个问题。
问题是Haskell web框架是在服务器端呈现JavaScript -- vanilla JS还是JS-via-Haskell (GHCJS,Fay等)。我的理解是Yesod不会预渲染JS (即执行JS并提供结果HTML)。相反,Yesod通过hamlet (或blaze-html或lucid,取决于您的偏好)在服务器端生成HTML。
我能找到的用于Haskell服务器端JS渲染(用于Angular)的唯一库是:
https://github.com/danchoi/ngrender
但它仍处于测试阶段。
如果还有其他的库/解决方案,我很想听听。这对我来说也是一个问题。我想在客户端使用purescript-halogen,但是...搜索引擎优化。
编辑:目前,最好的选择可能是使用nginx作为负载均衡器,在Haskell服务器和prerender.io的前面提供渲染的JS-pages来搜索机器人:
发布于 2015-09-26 18:06:24
Stock Yesod scaffold做了HTML的服务器端渲染,并有针对HTML、CSS和JS的自定义预处理语言。你应该能够集成Fay/Purescript而不会有太多的问题,因为它们已经存在了一段时间了,而且yesod至少为其中之一提供了脚手架。
对于像GHCJS集成这样的东西,你会看到在即将到来的stack工具(例如this issue)版本中有很多进展。从理论上讲,这将使全栈Haskell在没有太多麻烦的情况下实现。现在,我的理解是集成GHCJS不是微不足道的。
https://stackoverflow.com/questions/32795092
复制相似问题