2017-03-28 1 views
4

Das ist mein core.clj DateiClojure Ring Wrap-reload funktioniert nicht

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

Und das ist mein 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) 

Wenn ich lein es beginnt korrekt den Server laufen laufen, aber Wenn ich die GET-Antwort ändern möchte, muss ich den Server beenden und neu starten.

+0

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

+0

aber mir ist nicht weg von einer Anfrage. Es wird überhaupt nicht aktualisiert. –

+1

so '(wrap-reload # 'app)' löst Ihr Problem nicht? – birdspider

Antwort

3

wie im Ring issue#104 das Dokument ist nicht ganz klar.

Für wrap-reload (auch für ähnliche Funktionalität in anderen Bibliotheken/Projekten) muss man die Var selbst nicht den Wert übergeben.

Wie so

(wrap-reload #'app) 
Verwandte Themen