使用compojure如何设置默认路由,例如
(defroutes app
(GET '/api/user/:id/' [] show-user)
(default-handler render-template)) ; this is what I want
Run Code Online (Sandbox Code Playgroud)
反正有没有实现这个目标?我知道not-found,但它给了我404 http状态.
您只需将处理程序设置为/:
(defroutes app
(GET "/api/user/:id/" [] show-user)
(GET "/" render-template))
Run Code Online (Sandbox Code Playgroud)
或者,如果要默认任何HTTP谓词:
(defroutes app
(GET "/api/user/:id/" [] show-user)
(ANY "/" render-template))
Run Code Online (Sandbox Code Playgroud)
Compojure路由从上到下匹配,因此任何未匹配的路径都将回退到您的/处理程序.