2015-06-23 2 views
2

Я создаю приложение Yesod, которое состоит из двух частей. Остальные api (yesod) и клиентская сторона (angularjs).Yesod catchall route

Кроме того, что для отдыха api, Yesod также отправляет исходный html клиенту для запуска angularjs. Я это работает так:

конфигурации/маршруты:

/user GET 
/someOtherEntity GET POST 
/HomeR GET --route to send the html 

Обработчик/Home.hs

getHomeR :: Handler Html                    
getHomeR = sendFile typeHtml "frontend/build/index.html" 

Пока первый URL является www.mydomain.com/ это работает отлично , но когда я иду на www.mydomain/some-angle/route, я получаю 404 от Yesod.

Я попытался это:

/#Text HomeR GET 

Это прекрасно работает/MY-угловому маршрута, но перерывы на/мой-Угловая маршрутным/парам. Я мог бы добавить/# Text/# Text, я полагаю, но, безусловно, есть более чистый способ справиться с этим.

Как я могу реализовать какой-то способ поймать весь маршрут? Поэтому, когда это не URL-адрес, который соответствует маршруту, он должен просто вызвать getHomeR.

ответ

3

Вы можете использовать многокомпонентные маршруты, и, скорее всего, вам понадобится проверка перекрытия. Это будет выглядеть так:

!/*Texts HomeR GET 

Для получения дополнительной информации см the routing chapter книги Йесод.

 Смежные вопросы

  • Нет связанных вопросов^_^