1

我在 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})))

如何检查某些条件,如果为真,则重定向到具有 http 状态 301 的新 url?我应该在哪里输入我的代码以及如何进行重定向?

4

1 回答 1

1

您的layout/render函数返回带有 HTML 正文内容的完整 HTTP 200 响铃响应。您需要返回重定向响应而不是layout/render函数产生的响应:

(defn my-page1 [id]
  (if (some-condition)
    (layout/render ...)
    (ring.util.response/redirect "http://elsewhere.com/" 301)))
于 2016-05-30T08:54:44.657 回答