Clojure:当html文件改变时刷新运行的web应用程序

时间:2015-03-06 19:08:00

标签: clojure leiningen ring

我已经使用lein-ring设置我的项目以允许热代码重新加载。当我在应用程序运行时更改任何.clj文件时,它确实有效...

如何在任何html,css和js文件中进行更改。 (位于资源/公共场所......)

这是我的project.clj设置:

(defproject ...
  :plugins [[lein-cljsbuild "1.0.4"]
            [lein-ring "0.9.2"]]      
  :ring {:handler votepourca.server/handler
          :auto-reload? true
          :auto-refresh? true}
  :resource-paths ["resources" "markup"]
  :source-paths ["src/clj"]
  ...)

修改
我正在使用Enlive,显然,它需要一个额外的环形包装器来允许静态文件重新加载:[com.akolov.enlive-reload "0.1.0"]

所以在我的server.clj / core.clj / handler.clj中,我现在有了这个,它完美无缺!

(:require 
    [ring.middleware.reload   :refer [wrap-reload]]
    [com.akolov.enlive-reload :refer [wrap-enlive-reload]])
...

(defn app [routes]
  (-> routes 
      (wrap-params) 
      (wrap-reload)
      (wrap-enlive-reload))))

感谢" Kolov"这篇文章的作者https://github.com/kolov/enlive-reload

1 个答案:

答案 0 :(得分:4)

添加:reload-paths除了:auto-reload?/:auto-refresh?。 https://github.com/weavejester/lein-ring/blob/master/src/leiningen/ring/server.clj#L25