3

从 uberjar 运行时,Ring 的文件响应对我不起作用。我都试过了

(response/file-response "index.html" {:root "resources/public"})

(response/response (clojure.java.io/as-file (clojure.java.io/resource "public/index.html")))

您如何在 uberjar 内的“/”处提供 index.html?

4

1 回答 1

6

您需要使用ring.util.response/resource-responsewhich 服务在类路径中找到的文件。假设您要提供在您的 überjar 目录中index.html找到的文件resources,则参数几乎与您对以下命令的调用完全相同file-response

(response/resource-response "index.html" {:root "public"})

"public""resources/public", 因为resources是包含在 überjar 中的顶级目录之一,所以public将在顶级的类路径中找到。(如果从文件系统而不是 überjar 运行,这也是正确的;那么路径需要相对于类路径上的某个顶级目录。)

于 2013-09-18T15:29:55.383 回答