Получить адрес хоста программно в webnoir - PullRequest
5 голосов
/ 16 октября 2011

Я занимаюсь разработкой приложения Clojure webnoir, и мне нужно создать URL обратного вызова (для oauth Twitter), который отличается в dev-режиме от рабочего режима.В dev-режиме он должен быть localhost:8080/smth, а на производстве (heroku) явно что-то вроде http://smooth-lightning-xxxx.herokuapp.com/smth.Как программно получить деталь localhost:8080 за defpage?

Ответы [ 2 ]

4 голосов
/ 16 октября 2011

Я не пробовал, но я думаю, что это должно работать

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

, а затем в defpage:

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

Вы также можете посмотреть на noir middleware если вам нужно много подправлять запросы и ответы.

3 голосов
/ 16 октября 2011

В конце концов я решил это, используя это, внутри defpage, с noir.request, необходимым как request:

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