如何在 Yesod 中更改子站点的 URL?

How to change the URLs of a subsite in Yesod?

是否可以在 Yesod 中重命名子站点的端点?

例如,我不想使用提供的 /login or /email/register from yesod-auth,而是称它们为“/entrar”和“/cadastrar”(分别是它们在 PT-BR 中的对应物)。

我设法做到这一点的唯一方法是将 stack.yaml 设置为使用 yesod-auth 的修改后的本地副本,但我想知道是否有更好的方法。

目前 YesodAuth 数据类型不提供更改这些路由的方法,因此据我所知,您有两个选择:

  1. 有一份yesod-auth的本地副本,并根据您的需要进行修改(你在做什么就知道)

  2. config/routes 中有您想要的路由,并且每个路由都有一个处理程序,将重定向到 yesod-auth 路由:

config/routes

/entrar MyauthEntrarR GET

src/Handler/Myauth

getMyauthEntrar :: Handler Html

getMyauthEntrar = redirect LoginR