【问题标题】:Commas in Compojure routesCompojure 路由中的逗号
【发布时间】:2013-04-20 05:03:25
【问题描述】:

我正在尝试创建一个路由,该路由的参数包含 compojure 中的逗号

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

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

有谁知道这是什么原因造成的,我该如何解决?

【问题讨论】:

  • 您是使用 compojure andler/api 还是 handler/site 来路由请求?

标签: clojure compojure ring


【解决方案1】:

Compojure 使用clout 进行路由。来自clout的README:

Clout 支持关键字和通配符。关键字(如:title)将匹配除以下字符之外的任何字符:/ . , ; ?。

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

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

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 2014-03-25
    • 2021-07-19
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2011-08-14
    • 2012-05-31
    相关资源
    最近更新 更多