我正在尝试使用静态文件路由,webservice api和域根目录的家庭地址来设置服务器。我的yes应用程序看起来像这样:
mkYesod "App" [parseRoutes|
/static StaticR Static getStatic
/ HomeR GET
... api routes
|]
现在我找到了如何提供静态文件以及如何处理api请求。但我被getHomeR
定义所困扰。我只想提供index.html
文件。我可以手动读取它并将其作为字符串传递。但是,是否有一个有效的内置解决方案来提供特定的html文件?
答案 0 :(得分:6)
嗯,我在询问后1分钟找到答案(我已经搜索了20分钟)。
Yesod.Handler
中有一位名为sendFile
的好帮手。 getHomeR
定义如下所示:
getHomeR :: Handler ()
getHomeR = do
app <- getYesod
let indexPath = getRootDir app </> "index.html"
sendFile "text/html" indexPath