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

いくつかの条件を確認し、それが true の場合、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 に答える