4

我正在尝试使用静态文件路由、Web 服务 api 和域根目录的家庭地址设置服务器。我的 yesod 应用程序如下所示:

mkYesod "App" [parseRoutes|
/static StaticR Static getStatic
/ HomeR GET
... api routes
|]

现在我找到了如何提供静态文件以及如何处理 api 请求。但我坚持getHomeR定义。我只想提供一个index.html文件。我可以手动读取它并将其作为字符串传递。但是是否有一个有效的内置解决方案来提供特定的 html 文件?

4

1 回答 1

7

好吧,我问了1分钟后找到了答案(我一直在寻找20分钟)。

有一个很好的助手Yesod.Handler被调用sendFilegetHomeR定义如下所示:

getHomeR :: Handler ()
getHomeR = do
    app <- getYesod
    let indexPath = getRootDir app </> "index.html"
    sendFile "text/html" indexPath
于 2013-10-11T11:38:26.003 回答