Redirect 路由的Compojure/Clojure错误

Redirect 路由的Compojure/Clojure错误,redirect,clojure,routes,compojure,ring,Redirect,Clojure,Routes,Compojure,Ring,我正在使用Clojure/ring/compojure制作一个web应用程序,但在路由方面遇到了问题。我有两个文件:web.clj和landing.clj。我想将导航到uri的用户从web.clj处理程序路由到landing.clj处理程序,并调用home函数,该函数将呈现我的应用程序的首页。我不能为我的生活似乎摸索语义,请帮助。我阅读的文档假定我有很多web开发知识,我是一个初学者。现在,当我从Leiningen运行本地服务器时,浏览器中出现404错误消息。我知道它正在通过landing.cl

我正在使用Clojure/ring/compojure制作一个web应用程序,但在路由方面遇到了问题。我有两个文件:web.clj和landing.clj。我想将导航到uri的用户从web.clj处理程序路由到landing.clj处理程序,并调用home函数,该函数将呈现我的应用程序的首页。我不能为我的生活似乎摸索语义,请帮助。我阅读的文档假定我有很多web开发知识,我是一个初学者。现在,当我从Leiningen运行本地服务器时,浏览器中出现404错误消息。我知道它正在通过landing.clj文件中的defroutes,因为地址栏显示
http://0.0.0.0:5000/landing
,当我加载
http://0.0.0.0:5000

这是my web.clj文件的代码,它成功重定向到landing.clj文件:

  (defroutes app
  (ANY "/repl" {:as req}
       (drawbridge req))
  (GET "/" [] (redirect "landing")) ;; come fix this later
  (ANY "*" []
       (route/not-found (slurp (io/resource "404.html")))))
这来自landing.clj文件,错误位于
GET”/“
函数的某个位置:

(defroutes app
  (GET "/" []
       {:status 200
        :headers {"Content-Type" "text/html"}
        :body (home)})
  (POST "/" [weights grades] ((process-grades (read-string weights) (read-string grades)) ))
  (ANY "*" []
       (route/not-found (slurp (io/resource "404.html")))))

下面的表达式似乎有额外的括号:

(POST/“[权重等级]((过程等级(读取字符串权重)(读取字符串等级)))

应该是:


(发布“/”[权重等级](过程等级(读取字符串权重)(读取字符串等级))

谢谢您指出这一点。我想知道是否有一种方法可以让我直接从web.clj defroutes调用landing.clj中的home函数,而不用重定向。你能告诉我这种情况下的惯用用法是什么吗?你可以将landing.clj名称空间导入web.clj并调用home函数。哈哈!这就是我需要知道的。这么简单。(掌心)