Compojure路线中的逗号

时间:2013-04-26 05:32:23

标签: clojure compojure ring

我正在尝试创建一个包含compojure中逗号

的参数的路由
(GET "/tags/multiple/:tag-names" [tag-names] multiple-tags)

但出于某种原因,每当我在:tag-names字段中包含逗号时,它就会404s。没有逗号时它可以正常工作。

有谁知道是什么导致这种情况以及如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

Compojure使用clout进行路由。来自clout的{​​{3}}:

  

Clout支持关键字和通配符。关键字(例如:title)将匹配任何字符,但以下内容:/ . , ; ?

默认情况下,clout会将逗号视为路径段分隔符。您可以通过将自定义正则表达式传递给路径来解决此问题。以下内容可使:tag-names匹配除/以外的任何字符:

(GET ["/tags/multiple/:tag-names" :tag-names #"[^/]+"] [tag-names] multiple-tags)