Web applications 使用来自uberjar的文件响应
从uberjar运行时,Ring的文件响应对我不起作用。我两个都试过了Web applications 使用来自uberjar的文件响应,web-applications,jar,clojure,compojure,ring,Web Applications,Jar,Clojure,Compojure,Ring,从uberjar运行时,Ring的文件响应对我不起作用。我两个都试过了 (response/file-response "index.html" {:root "resources/public"}) 及 如何在uberjar中的“/”处提供index.html?您需要使用ring.util.response/resource response来提供类路径上的文件。假设您希望提供一个index.html文件,该文件位于überjar的resources目录中,参数几乎与调用文件响应时的参数完全
(response/file-response "index.html" {:root "resources/public"})
及
如何在uberjar中的“/”处提供index.html?您需要使用
ring.util.response/resource response
来提供类路径上的文件。假设您希望提供一个index.html
文件,该文件位于überjar的resources
目录中,参数几乎与调用文件响应时的参数完全相同:
(response/resource-response "index.html" {:root "public"})
它是“public”
而不是“resources/public”
,因为resources
是包含在überjar中的顶级目录之一,所以public
将在顶级的类路径上找到。(如果从文件系统而不是从一个überjar运行,这也是正确的;然后路径需要与类路径上的某个顶级目录相对。)是有道理的,但这对我不起作用。当我点击“/”时,我得到一个404。我的index.html文件位于resources/public中,我还没有定义:resources in My project.clj,所以默认情况下它应该是resources/dir,对吗?我应该提到资源响应返回未找到即使我通过lein运行应用程序,而不仅仅是从uberjar运行。啊,对,这应该是{root“public”}
。我马上就搞定答案。
(response/resource-response "index.html" {:root "public"})