我正在构建一个由两个 Clojure 项目组成的 Compojure webapp。第一个是用于可视化一些数据的 webapp,第二个是更复杂的应用程序,需要使用第一个。
我希望能够使用第二个项目中的run-jetty同时运行这两个应用程序。这将允许第二个 webapp 从第一个 webapp 调用 URL 以获取可视化。
我正在使用Compojure的上下文宏,这是第二个应用程序的路线:
(def second-project-main-routes
[
(context "/second" request
(GET "/viewsession" {session :session} (str session))
(GET "/resetsession" [] (reset-session))
... other routes here ...
(route/resources "/"))
])
(def second-all-routes
(concat second-project-main-routes
first-project-routes)
(def second-app
(-> (handler/site (apply routes second-all-routes))
(wrap-base-url)))
;; to comment when building the JAR:
(defonce second-server (run-jetty #'second-app {:join? false :port 8080}))
这里是第一个应用程序的路线:
(def first-project-routes
[(context "/first" request
(GET "/" [] (index-page))
(route/files "/" {:root (str (System/getProperty "user.dir") "/data/public")})
(route/resources "/"))])
我有两个 main.js 文件。一个在firstproject/resources/public/js/app/main.js和一个 在 secondproject/resources/public/js/app/main.js
当我浏览 url localhost:8080/first/app/js/main.js 时,我得到了第二个项目的 main.js。为什么?