我编写了一些Clojurescript代码,需要一个REST接口来与服务器进行通信。后端目前在Python中,我想把它移到Clojure。现在我找到了rook https://github.com/AvisoNovate/rook,它提供了一个很好的REST API,我将使用它。
但是我想使用ring(由rook使用)在同一个http服务器上提供一些静态内容(基本上是Hlo和JS of ClojureScript)。
我的设置与现在的Rook示例非常相似:
https://portal.aviso.io/#/document/open-source/rook/Current/example.html
(ns org.example.server (:import [org.eclipse.jetty.server Server]) (:require [ring.adapter.jetty :as jetty] [io.aviso.rook :as rook] [clojure.tools.logging :as l])) (defn start-server "Starts a server on the named port, and returns a function that shuts it back down." [port] (let [handler (-> (rook/namespace-handler ["counters" 'org.example.resources.counters]) rook/wrap-with-standard-middleware) ^Server server (jetty/run-jetty handler {:port port :join? false})] (l/infof "Listening on port %d." port) #(.stop server))) (defn main [] (start-server 8080))
关于如何使用环静态资源功能运行,我没有明确的图片:https://github.com/ring-clojure/ring/wiki/Static-Resources
答案 0 :(得分:1)
我对车不是很熟悉,在快速浏览一下文档和一些代码后,我看不到静态资源。如果这是错误的,请原谅我。
看起来车很多,但最后它仍然给你一个戒指处理程序。因此,您应该能够获取它返回的环处理程序函数,并将其与任何其他环处理程序函数/中间件(例如Ring附带的函数/中间件)结合使用。