2016-05-30 3 views
1

У меня есть действие в приложении Compojure/LUMINUS:Как я могу перенаправить 301 http в приложение Compojure/Luminus?

(defn my-page1 [id] 
    (layout/render "my_page.html" 
    (let 
     [item (db/get-single-item {:id id})] 

     ; this throws an exception 
     ; if ..... 
     ; redirect "fdsfdsfd" :status 301 

     { :my-item item}))) 

Как я могу проверить некоторые условия, и если это правда, то сделать редирект на новый URL со статусом HTTP 301? Где я должен поместить свой код и как я могу сделать перенаправление?

+0

'получить однозначный item' бросает исключение, когда элемент не найден или он возвращает' nil'? – kongeor

ответ

1

Функция layout/render возвращает полный ответ HTTP 200 с содержимым тела HTML. Вы должны вернуть ответ перенаправления вместо ответа, полученного от layout/render функции:

(defn my-page1 [id] 
    (if (some-condition) 
    (layout/render ...) 
    (ring.util.response/redirect "http://elsewhere.com/" 301))) 

 Смежные вопросы

  • Нет связанных вопросов^_^