我正在使用 compojure 开发一个 webapp,我曾经用来lein ring server
测试我的应用程序。
由于出现问题(例如,http 请求期间出现 500 服务器错误),我总是在环服务器运行时编辑代码,并且当我保存更改时它会保持动态重新编译,因此无需重新启动lein ring server
但是今天有些奇怪。有一个文件,其中包含整个应用程序的核心逻辑。我仔细设计了它,所以没有循环依赖。我开始时一切都很好lein ring server
。但很快事情就变得奇怪了:对该文件的任何更新(甚至添加一个空格)都会导致服务器在下一个 http 请求时堆栈溢出,如果我重新启动服务器,一切都会再次正常,我的新代码运行良好。所以直到现在,每次我需要更新那个文件时,我都需要关闭服务器,更新文件,然后lein ring server
再次运行。那是浪费时间,我想知道可能是什么原因。
错误消息显示:
at clojure.core$reduce.invoke(core.clj:6177)
at ns_tracker.dependency$transitive.invoke(dependency.clj:22)
at ns_tracker.dependency$transitive$fn__924.invoke(dependency.clj:21)
at clojure.core.protocols$fn__6022.invoke(protocols.clj:79)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
数百次,“stackoverflow”除外。
非常感谢大家