Clojure compojure defroutes-有时无法识别路由

Clojure compojure defroutes-有时无法识别路由,clojure,compojure,Clojure,Compojure,我有一个clojure/compojure网络应用程序,有以下路径 (defroutes my-routes (GET "/app/preview" request (my-preview-function request)) (ANY "*" request (str "ANY page <br>" (request :params)))) 有人能提出什么可能导致跳过/ebook/preview请求吗?这绝对是一个GET请求;HTML中没有/app/preview URL的

我有一个clojure/compojure网络应用程序,有以下路径

(defroutes my-routes
 (GET "/app/preview" request  (my-preview-function request))
 (ANY "*" request (str "ANY page <br>" (request :params))))
有人能提出什么可能导致跳过/ebook/preview请求吗?这绝对是一个GET请求;HTML中没有/app/preview URL的帖子,更确切地说,我为/app/preview添加了一个帖子路径,但没有被点击

JAR版本:

Clojure 1.2
compojure-0.6.2
ring-core-0.3.7
jetty-6.1.14
ring-jetty-adapter-0.3.1
ring-servlet-0.3.1jar
servlet-api-2.5-6.1.14
路线包装如下

(require '[compojure.handler :as handler])

(defn wrap-charset [handler charset]
  (fn [request]
    (if-let [response (handler request)]
      (if-let [content-type (get-in response [:headers "Content-Type"])]
        (if (.contains content-type "charset")
          response
          (assoc-in response
            [:headers "Content-Type"]
            (str content-type "; charset=" charset)))
        response))))

(def app (-> my-routes
           handler/site
           wrap-stateful-session
           (wrap-charset "utf-8")
           (wrap-file "public")))

(defn run []
  (run-jetty (var app) {:join? false :port 8080}))

如果您试图找出是什么请求导致了问题,请停止使用
(request:params)
丢弃请求映射,只需查看
request
。这会给你一张地图,上面有Compojure所有的信息;您可以检查它,稍后再将其传递回路由,以观察发生了什么(比如,在您进行一些更改之后)。

如果

(my-preview-function request)

返回nil,则路由将尝试下一个路由。查看(源代码GET)并查看它如何匹配(或不匹配)您的路线。

谢谢。这是个好建议。仍然不喜欢找出为什么正确的路线没有被选上,但如果我找到了,我会给出反馈。
(my-preview-function request)