这是我的 project.clj 文件:
(defproject org.github.pistacchio.deviantchecker "0.9.0"
:description "A one page application for keeping track of changes on deviantart.com gallieries"
:dependencies [[org.clojure/clojure "1.2.1"]
[org.clojure/clojure-contrib "1.2.0"]
[enlive "1.0.0"]
[compojure "0.6.4"]
[ring/ring-jetty-adapter "1.0.0-beta2"]]
:dev-dependencies [[lein-ring "0.4.6"]]
:ring {:handler org.github.pistacchio.deviantchecker.core/app}
:main org.github.pistacchio.deviantchecker.core)
这是我的路由配置:
(defroutes main-routes
(GET "/" [] (get-home))
(GET "/add" [d] (add-gallery d))
(GET "/delete" [d] (delete-gallery d))
(GET "/check" [d] (check-gallery d))
(route/resources "/")
(route/not-found "Page not found"))
我有一些网页静态文件在/resources/public
目录下,可以访问。在代码中,我需要访问位于/resources/data
和/resources/tpl
的文件系统中的某些文件。使用lein ring
服务器或者lein run
命令,以下调用可以正常工作。
(java.io.File. "resources/tpl/home.html")
当使用
lein uberwar
打包应用并在Tomcat下部署时,出现FileNotFoundException错误。可能是因为在lein中,当前工作目录是项目根目录,而在Tomcat中,它是Tomcat的bin目录。例如,我有
/resources/data/data.dat
文件被打包在war中作为/data/data.dat
,所以要么"resources/data/data.dat"在Tomcat下无法正常工作,要么"data/data.dat"在开发环境下无法正常工作。顺便问一下,在Compojure中管理这个问题的正确方式是什么?谢谢。