我已经使用 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/

10-11 01:32