在yesod中提供特定的html文件

Sim*_*got 3 haskell yesod

我正在尝试使用静态文件路由,webservice api和域根目录的家庭地址来设置服务器.我的yes应用程序看起来像这样:

mkYesod "App" [parseRoutes|
/static StaticR Static getStatic
/ HomeR GET
... api routes
|]
Run Code Online (Sandbox Code Playgroud)

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

Sim*_*got 6

好吧,我在询问后1分钟找到答案(我已经搜索了20分钟).

有一个好帮手Yesod.HandlersendFile.该getHomeR定义是这样的:

getHomeR :: Handler ()
getHomeR = do
    app <- getYesod
    let indexPath = getRootDir app </> "index.html"
    sendFile "text/html" indexPath
Run Code Online (Sandbox Code Playgroud)