Как сделать страницу видимой с или без косой черты в URL-адресе?

Я использую нуар.

Имея:

(defpage "/welcome" [] "Welcome to Noir!")

Я заставляю работать оба этих URL:

http://localhost:8080/welcome 
http://localhost:8080/welcome/

Спасибо!

РЕДАКТИРОВАТЬ: вот полный ответ.

В server.clj сложите (:use [ring.util.response :only [redirect]])

Затем написать :

(defn wrap-slash 
  ""
  [handler]
  (fn [{:keys [uri] :as req}]
    (if (and (.endsWith uri "/") (not= uri "/"))
      (handler (assoc req :uri (.substring uri
                                0 (dec (count uri)))))
      (handler req))))

(server/add-middleware wrap-slash)

person leontalbot    schedule 08.10.2013    source источник


Ответы (1)


Маршрутизация Нуара более строгая, чем у некоторых других, поэтому взгляните на этот вопрос, который, хотя и имеет другое название, задает тот же вопрос.

person Jared314    schedule 08.10.2013
comment
Спасибо за ответ. Другой вопрос касается перенаправления. Когда я набираю ... / welcome /, я не хочу, чтобы URL-адрес в браузере менялся на ... / welcome. Я просто хочу, чтобы оба URL-адреса были возможны и указывали на один и тот же контент. Подтверждает ли это ответ на другой вопрос? - person leontalbot; 08.10.2013
comment
Оказывается, работает отлично! Спасибо большое. Я отредактировал свой вопрос, взяв ответ на другой вопрос и добавив контекст того, как его использовать: (server/add-middleware wrap-slash). Этого не хватало в другом ответе, или, по крайней мере, это не было явным ... - person leontalbot; 08.10.2013