Yesod catchall路线

时间:2015-06-23 19:37:08

标签: haskell routes yesod

我正在构建一个由两部分组成的yes应用程序。其余的api(yesod)和客户端(angularjs)。

除了作为rest api之外,yesod还将初始html发送给客户端以启动angularjs。我有这样的工作:

配置/路线:

/user GET
/someOtherEntity GET POST
/ HomeR GET --route to send the html

处理程序/ Home.hs

getHomeR :: Handler Html                                                                            
getHomeR = sendFile typeHtml "frontend/build/index.html" 

只要第一个网址是www.mydomain.com/,这样就行了,但是当我去www.mydomain / some-angular / route时,我会从yesod获得404.

我试过这个:

/#Text HomeR GET

这适用于/ my-angular-route,但在/ my-angular-route / param上会中断。我想可以添加/ #Text / #Text,但肯定有更简洁的方法来处理它。

如何实现某种捕获方式?因此,只要它不是与路由匹配的URL,就应该调用getHomeR。

1 个答案:

答案 0 :(得分:3)

您可以使用多件套路线,并且可能需要关闭重叠检查。这看起来像是:

!/*Texts HomeR GET

有关详细信息,请参阅Yesod书籍的the routing chapter