Yesod 包罗万象的路线
Yesod catchall route
我正在构建一个由两部分组成的 yesod 应用程序。其余 api (yesod) 和客户端 (angularjs).
除了休息api,yesod还会发送初始html给客户端启动angularjs。我让它像这样工作:
config/routes:
/user GET
/someOtherEntity GET POST
/ HomeR GET --route to send the html
Handler/Home.hs
getHomeR :: Handler Html
getHomeR = sendFile typeHtml "frontend/build/index.html"
只要第一个 url 是 www.mydomain.com/ 就可以正常工作,但是当我访问 www.mydomain/some-angular/route 我从 yesod 收到 404。
我试过这个:
/#Text HomeR GET
这对 /my-angular-route 工作正常,但在 /my-angular-route/param 上中断。我想我可以添加 /#Text/#Text,但肯定有更简洁的处理方式。
如何实现某种捕获所有路由?因此,只要它不是匹配路由的 url ,它就应该调用 getHomeR.
您可以使用多段路线,并且可能需要关闭重叠检查。这看起来像:
!/*Texts HomeR GET
有关详细信息,请参阅 Yesod 书的 the routing chapter。
我正在构建一个由两部分组成的 yesod 应用程序。其余 api (yesod) 和客户端 (angularjs).
除了休息api,yesod还会发送初始html给客户端启动angularjs。我让它像这样工作:
config/routes:
/user GET
/someOtherEntity GET POST
/ HomeR GET --route to send the html
Handler/Home.hs
getHomeR :: Handler Html
getHomeR = sendFile typeHtml "frontend/build/index.html"
只要第一个 url 是 www.mydomain.com/ 就可以正常工作,但是当我访问 www.mydomain/some-angular/route 我从 yesod 收到 404。
我试过这个:
/#Text HomeR GET
这对 /my-angular-route 工作正常,但在 /my-angular-route/param 上中断。我想我可以添加 /#Text/#Text,但肯定有更简洁的处理方式。
如何实现某种捕获所有路由?因此,只要它不是匹配路由的 url ,它就应该调用 getHomeR.
您可以使用多段路线,并且可能需要关闭重叠检查。这看起来像:
!/*Texts HomeR GET
有关详细信息,请参阅 Yesod 书的 the routing chapter。