我有以下路由定义:
(require '[compojure.core :as ccore]
'[ring.util.response :as response])
(def *main-routes*
(ccore/defroutes avalanche-routes
(ccore/GET "/" [] "Hello World 2")
(ccore/GET "/images/:id" [id] (get-image-response id))))
在这个例子中,请求
/
像魔法一样工作,并返回预期的Hello World 2
。get-images-response方法定义如下:
(defn get-image-response
[id]
(let [record (db/get-image id false)]
(-> (response/response (:data record))
(response/content-type (:content-type record))
(response/header "Content-Length" (:size record)))))
我得到了404错误,所以二进制文件的服务还不完全工作。有什么想法为什么会这样?
编辑:
好的,问题与请求在/images/name.jpg
上的图像有关。一旦我删除了.jpg
,处理程序就会被调用。所以问题变成如何匹配除扩展名以外的任何内容?