Wildcarding Compojure Routes 给出警告

Wildcarding Compojure Routes gives a warning

以下路线按我的意愿工作 - 即匹配 /pref/ 并将 * 绑定到路径的其余部分。

(GET "/pref/*" [*] (do (println *) (resp (str "Hello " *))))

但是对标准输出有抱怨:

WARNING: * should not be used as a route binding.

clout 文档建议用 * 通配符没问题,compojure 文档没有解释我应该如何在不引发警告的情况下惯用地执行此操作,或者警告的原因是什么。我必须承认某种不安的束缚 * 我自己虽然我不确定为什么。

经过一番摸索,这似乎令人满意,使用内联正则表达式功能来匹配所有内容。仍然不确定警告是什么。

(GET "/pref/:path{.*}" [path] (do (println path) (resp (str "Hello " path))))