首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Compojure:嵌套路由问题

Compojure:嵌套路由问题
EN

Stack Overflow用户
提问于 2013-03-17 16:39:47
回答 1查看 852关注 0票数 1

我试图在我的应用程序中设置路线,以便:

  • /: locale / -> Home,具有地区绑定
  • /: locale /search ->搜索,具有区域绑定

到目前为止,我的路由代码是:

代码语言:javascript
复制
(defn controller-routes [locale]
  (home/c-routes locale)
  (search/c-routes locale)))


(defroutes app-routes
  (route/resources "/")
  (context "/:locale" [locale]
    (controller-routes locale))
  no-locale-route
  (route/not-found "Not Found"))

搜索/c-路线:

代码语言:javascript
复制
(defn c-routes [locale]
 (GET "/search" [] (index locale)))

家庭/c-路线:

代码语言:javascript
复制
(defn c-routes [locale]
   (GET "/" [] (index locale)))

我不明白为什么这不能正常工作,但是目前"/uk/search/“匹配正确,但是"/uk/”给出了404页。

任何帮助都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-17 16:57:00

controller-routes是一个正常的函数,到目前为止,它返回最后一条路径,即搜索,因此只有搜索工作。您需要的是使controller-routes成为一个使用defroutes的路由,并更改c-路由:

搜索/c-路线:

代码语言:javascript
复制
(def c-routes (GET "/search" [locale] (index locale)))

家庭/c-路线:

代码语言:javascript
复制
(def c-routes (GET "/" [locale] (index locale)))

在使用上述路线的地方:

代码语言:javascript
复制
(defroutes controller-routes
  home/c-routes
  search/c-routes)


(defroutes app-routes
  (route/resources "/")
  (context "/:locale" [locale]
    controller-routes)
  no-locale-route
  (route/not-found "Not Found"))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15463302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档