如何设置默认路由?

Far*_*ion 1 clojure

使用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状态.

leo*_*ges 5

您只需将处理程序设置为/:

(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路由从上到下匹配,因此任何未匹配的路径都将回退到您的/处理程序.