Файл загружается, а не отображается в браузере

Я создал совершенно новое приложение из шаблона приложения luminus, используя lein new luminus my-app +postgres +auth +cljs +swagger. В сгенерированном файле src/clj/my_app/routes/home.clj создается следующий составной маршрут:

(GET "/docs" [] (response/ok (-> "docs/docs.md" io/resource slurp)))

Когда я пытаюсь получить доступ к localhost:3000/docs, файл просто загружается, а не отображается в браузере. Это происходит как с Chrome, так и с Safari.

Кажется, это связано с ring.util.http-response/ok, так как я могу воспроизвести поведение, используя и этот маршрут:

(GET "/hi" [] (response/ok "hi")).

Затем загружается файл «привет» с содержимым файла «привет».

Любые идеи о том, что вызывает это?


person Robert    schedule 22.02.2016    source источник


Ответы (1)


Ваш обработчик ответа не устанавливает Content-Type для тела ответа.

Вы можете сделать это, используя ring.util.http-response/content-type:

(GET "/hi" [] (-> "hi"
                  (response/ok)
                  (response/content-type "text/plain")))

Вы также можете обернуть свой обработчик в ring.middleware.content-type/wrap-content-type, поэтому заголовки «угадываются» на основе расширения файла из URI.

person Piotrek Bzdyl    schedule 22.02.2016