我尝试将leiningen项目转换为引导:https://github.com/borkdude/lein2boot.
它使用服务任务来服务处理程序。处理程序提供API并提供文件。使用重载任务,我希望能够重载javascript。
我需要把我的html和javascript放在资源目录的根目录(在这个例子中是"assets"),因为重载任务使用完整的资源路径(/main.js
)将修改后的javascript发送给浏览器。这意味着我还必须服务于我的类路径的根:Compojure中的(resources "/" {:root ""})
。这样做的问题是,任何人都可以从我的整个类路径请求任何文件:不好。
当我将javascript重新定位到assets/public/main.js
并从公共目录:(resources "/" {:root "public"})
服务时,该文件可以在"/main.js"请求,但重新加载任务通知浏览器从"/public/main.js"重新加载文件,这会导致404。
我该如何解决这个问题?
看起来这正在https://github.com/adzerk-oss/boot-reload/issues/18中工作,但最终将允许:asset-path
选项提供相对根。