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