在webnoir中以编程方式获取主机地址

时间:2011-10-16 10:02:01

标签: clojure noir

我正在开发一个Clojure webnoir应用程序,我需要构建一个回调网址(对于Twitter oauth),它在开发模式下与在生产模式下不同。在开发模式下,它必须是localhost:8080/smth,而在生产(heroku)上显然需要http://smooth-lightning-xxxx.herokuapp.com/smth之类的东西。如何以localhost:8080编程方式获取defpage部分?

2 个答案:

答案 0 :(得分:4)

我没有尝试过,但我认为这应该有用

(ns your-namespace
  (:require noir.request))

然后在defpage中:

(let [server-name (:server-name (noir.request/ring-request))]
    ...)

如果您需要大量调整请求和回复,也可以在noir middleware上停用。

答案 1 :(得分:3)

最后,我在defpage中使用此解决方法,noir.request需要request

((:headers (request/ring-request)) "host")