2017-03-28 7 views
4

をこれは私のcore.cljファイルClojureのリングラップリロードが

(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) 

で正しくサーバーを起動しますが、私がGETレスポンスを何か他のものに変更すると、例えばサーバを強制終了して再起動する必要があります。

+0

https://github.com/ring-clojure/ring/issues/104 – birdspider

+0

同様

が、鉱山は、要求ではオフではありません。それはまったく更新されません。 –

+1

'(wrap-reload# 'app)'で問題を解決できないのですか? – birdspider

答えて

3

issue#104で示されているように、この文書は明確ではありません。

wrap-reload(ほかのlibs/projectsの同様の機能と同様)では、値ではなくvar自体を渡す必要があります。そう

(wrap-reload #'app)