2016-02-22 6 views
0

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

(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")).

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

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

ответ

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.

+0

Отлично работает - спасибо! – Robert