我正在尝试创建一个包含compojure中逗号
的参数的路由(GET "/tags/multiple/:tag-names" [tag-names] multiple-tags)
但出于某种原因,每当我在:tag-names
字段中包含逗号时,它就会404s。没有逗号时它可以正常工作。
有谁知道是什么导致这种情况以及如何解决这个问题?
答案 0 :(得分:5)
Compojure使用clout
进行路由。来自clout
的{{3}}:
Clout支持关键字和通配符。关键字(例如
:title
)将匹配任何字符,但以下内容:/ . , ; ?
。
默认情况下,clout
会将逗号视为路径段分隔符。您可以通过将自定义正则表达式传递给路径来解决此问题。以下内容可使:tag-names
匹配除/
以外的任何字符:
(GET ["/tags/multiple/:tag-names" :tag-names #"[^/]+"] [tag-names] multiple-tags)