【发布时间】:2013-10-11 01:56:49
【问题描述】:
我正在使用 Snap 建立一个网站。如何指定自定义 404 处理程序来捕获所有不存在的路由?
我想重新定义默认值:
No handler accepted "/asdfasdf"
谢谢
【问题讨论】:
标签: haskell haskell-snap-framework
我正在使用 Snap 建立一个网站。如何指定自定义 404 处理程序来捕获所有不存在的路由?
我想重新定义默认值:
No handler accepted "/asdfasdf"
谢谢
【问题讨论】:
标签: haskell haskell-snap-framework
修改路由行为的正确方法是使用wrapSite:
wrapSite (\site -> site <|> writeBS "Use your custom 404 handler" )
在示例代码中,您可以在基本初始化程序中添加这一行。在 Snap Init 代码中,它将位于来自 app 函数的 do 中。
"" 也将匹配给定的任何路线。示例:
routes = [ ("/login", with auth handleLoginSubmit)
, ("/logout", with auth handleLogout)
, ("/new_user", with auth handleNewUser)
, ("/static", serveDirectory "static")
, ("", writeBS "This if none of the others" )
]
您可以将 "" 的处理程序更改为您的自定义 404。
【讨论】:
wrapSite (\site -> site <|> handle404)。