Я создаю веб-сайт с помощью Snap. Как указать собственный обработчик 404 для захвата всех несуществующих маршрутов?
Я хотел бы переопределить значение по умолчанию:
No handler accepted "/asdfasdf"
Спасибо
Я создаю веб-сайт с помощью Snap. Как указать собственный обработчик 404 для захвата всех несуществующих маршрутов?
Я хотел бы переопределить значение по умолчанию:
No handler accepted "/asdfasdf"
Спасибо
Правильный способ изменить поведение маршрутизации — использовать wrapSite
:
wrapSite (\site -> site <|> writeBS "Use your custom 404 handler" )
В примере кода вы можете добавить эту строку в свой базовый Initializer. В коде Snap Init это будет функция do
from app
.
Также ""
будет соответствовать любому указанному маршруту. Пример:
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)
.
- person mightybyte; 11.10.2013