我已经使用 lein-ring 设置了我的项目以允许热代码重新加载。当我在应用程序运行时更改任何 .clj 文件时,它确实有效......
我怎样才能使它在任何 html、css 和 js 文件中的更改都相同。 (位于资源/公共(public)...)
这是我的 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 的作者
最佳答案
添加 :reload-paths 除了 :auto-reload?/:auto-refresh?。 https://github.com/weavejester/lein-ring/blob/master/src/leiningen/ring/server.clj#L25
关于Clojure:当 html 文件更改时刷新正在运行的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28905903/