1

下面是我的应用程序 -

(ns mfaiz.routes
  (:use [net.cgrand.moustache :only [app]]
        [net.cgrand.enlive-html :only [deftemplate content]]
        [ring.util.response :only [response]]))

(deftemplate reg "mfaiz/templates/reg.html" [])

(def my-app (app
             ["hi"] "Hello World!"
             ["reg"] (-> ((-> "reg" symbol resolve)) response constantly) 
             [&] "Nothing was found"))

我在这条路线上遇到错误 -

["reg"] (-> ((-> "reg" symbol resolve)) response constantly) 

如果我直接评估上述路线,它可以正常工作并返回 html 文件 -

((-> "reg" symbol resolve)) 

如果我也将路由更改为直接调用模板函数,那么它也可以工作 -

["reg"] (-> (reg) response constantly)

任何想法出了什么问题?

4

1 回答 1

1

问题似乎是当它在环下运行时,“reg”没有得到解决,因为它不是完全合格的。这取决于环服务器在哪个命名空间中启动。因此,使用完全限定名称将起作用:

(-> "mfaiz.routes/reg" symbol resolve)

请检查resolve 文档。它试图解析当前命名空间中的符号,即*ns*

于 2012-09-07T09:13:15.017 回答