【发布时间】:2017-03-28 15:58:45
【问题描述】:
这是我的 core.clj 文件
(ns lein-app.core
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.reload :refer [wrap-reload]]))
(use 'ring.adapter.jetty)
(defroutes app
(GET "/" [] "<h1>Hello world</h1>")
(route/not-found "<h1>Not found</h1>"))
(def reloadable-app
(wrap-reload app))
(defn -main
[]
(run-jetty reloadable-app {:port 3000}))
这是我的 project.clj
(defproject lein-app "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [
[org.clojure/clojure "1.8.0"]
[compojure "1.5.2"]
[ring "1.5.0"]]
:main lein-app.core)
当我运行 lein run 时,它会正确启动服务器,但如果我将 GET 响应更改为其他任何内容,例如我需要终止服务器并重新启动它。
【问题讨论】:
-
但我的并没有被请求关闭。它根本不更新。
-
所以
(wrap-reload #'app)不能解决您的问题? -
确实如此!但是如何..
-
它在问题中进行了解释 -
wrap-reload需要捕获var本身,而不是能够重新加载它的值 - 这是一个你会发现许多“实时重新加载”的模式不同项目中的功能
标签: clojure