Clojure 模板中的Enlive代码段生成惰性序列

Clojure 模板中的Enlive代码段生成惰性序列,clojure,enlive,Clojure,Enlive,在以下HTML中访问localhost:3001/测试结果: <html> <head> </head> <body>clojure.lang.LazySeq@27237276</body> </html> 看起来我没有正确使用模板和/或在某个地方搞砸了懒惰。我试着在一些地方放置doall,希望它能解决懒惰问题,但没有骰子 调试尝试: (welcome "oru") => ({:tag :h1, :at

在以下HTML中访问localhost:3001/测试结果:

<html>
  <head>
  </head>
  <body>clojure.lang.LazySeq@27237276</body>

</html>
看起来我没有正确使用模板和/或在某个地方搞砸了懒惰。我试着在一些地方放置
doall
,希望它能解决懒惰问题,但没有骰子

调试尝试:

(welcome "oru")
=> ({:tag :h1, :attrs {}, :content ("oru")})

(html/emit* (welcome "oru"))
=> ("<" "h1" ">" "oru" "</" "h1" ">")
(欢迎使用“oru”)
=>({:标记:h1,:属性{},:内容(“oru”)})
(html/emit*(欢迎使用“oru”))
=>(“oru”)
到目前为止还不错

(home-page "oru")
=> ("<" "html" ">" "\n  " "<" "head" ">" "\n  " "</" "head" ">" "\n  " "<" "body" ">" "clojure.lang.LazySeq@27237276" "</" "body" ">" "\n\n" "</" "html" ">")
(主页“oru”)
=>(“”“\n”“\n”“\n”“clojure.lang。LazySeq@27237276“”\n\n“”)

砰<代码>“clojure.lang。LazySeq@27237276“,这到底是怎么回事?

您想使用
内容,而不是
html内容,因为代码片段会生成一系列节点
html内容
需要一个文本html内容字符串,并且很可能只是对其参数调用
str
(在本例中,是代码段的输出的惰性序列)

(home-page "oru")
=> ("<" "html" ">" "\n  " "<" "head" ">" "\n  " "</" "head" ">" "\n  " "<" "body" ">" "clojure.lang.LazySeq@27237276" "</" "body" ">" "\n\n" "</" "html" ">")