我希望用户能够访问myserver.com
并进入索引路径。
我希望在访问myserver.com/pages
时显示列表页面。
但是,如果用户访问了无效的网址,例如myserver.com/invalidpath/blabla
,则会覆盖indexPage
路由。
我想在访问无效网址时以404 page
回复。
以下是我的路线示例:
1 routes :: ServerPart Response
2 routes = msum
3 [ dirs "pages/delete" $ delete
4 , dirs "pages/edit" $ edit
5 , dirs "pages/save" $ save
6 , dirs "pages" $ listPages
7 , indexPage]
我现在想到的是,在indexPage
函数中,我可以检查路径是否包含任何内容或是否为空。通过这种方式,我可以确定是否来自无效网址或索引页面访问。
有没有好办法呢?
答案 0 :(得分:3)
在写这个答案时,我在hackage文件中找到了解决方案。
当路径为空时,有一个名为nullDir
的函数。
使用此功能,我的示例路线如下所示:
1 routes :: ServerPart Response
2 routes = msum
3 [ dirs "pages/delete" $ delete
4 , dirs "pages/edit" $ edit
5 , dirs "pages/save" $ save
6 , dirs "pages" $ listPages
7 , nullDir >> indexPage
8 , 404Page]
现在仅在路径为空时显示index page
,并且显示所有其他连击的404 page
。