Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 复合重定向_Clojure_Compojure - Fatal编程技术网

Clojure 复合重定向

Clojure 复合重定向,clojure,compojure,Clojure,Compojure,我有以下几点建议 (defroutes app-routes (GET "/login" [] (views/login)) (POST "/index.html" req (auth/do-login req)) (GET "/main" req (views/main req)) (GET "/test" [] (redirect "/login")) (not-found "Not Found")) 我用以下处理程序包装它们 (defn

我有以下几点建议

   (defroutes app-routes
    (GET "/login" [] (views/login))
    (POST "/index.html"  req (auth/do-login req))
    (GET "/main" req (views/main req))
    (GET "/test" [] (redirect "/login"))
    (not-found "Not Found"))
我用以下处理程序包装它们

  (defn default-handler [routes]
    (wrap-defaults routes
                   (-> site-defaults
                       (assoc-in
                        [:security :anti-forgery] false))))

  (def http-handler
    (-> (default-handler app-routes)
        (wrap-stacktrace)
        (wrap-authentication backend)
        (wrap-authorization backend)
        (wrap-session)
        (wrap-params)
        (wrap-with-logger)))

  (defn -main []
    (run-jetty http-handler {:port 8000 :join? false}))
我在后面运行一个环形服务器和nginx反向代理。我面临的问题是重定向。我无法从compojure根正确重定向。每次重定向都会将孔地址添加到根路径。例如 重定向到而不是 要从“/”重定向到uri,可以添加以下内容

2 (defn redirect* [handler uri]
 33   (fn  [request]
 34   ¦ (let  [k  (if  (contains? request :path-info)
 35   ¦ ¦ ¦ ¦ ¦ ¦ ¦ :path-info :uri) v  (get request k)]
 36   ¦ ¦ (if  (re-find #"/$" v)
 37   ¦ ¦ ¦ (ring.util.response/redirect uri)
 38   ¦ ¦ ¦ (handler request)))))
 39

这是可行的,但我宁愿避免为每个重定向路径添加一个中间件

问题似乎与dns的不存在有关。如果我添加(GET“/test”[](redirect)),它会重定向