2016-02-22 1 views
0

J'ai créé une toute nouvelle application à partir du modèle d'application luminus en utilisant lein new luminus my-app +postgres +auth +cljs +swagger. Dans le fichier généré src/clj/my_app/routes/home.clj la route compojure suivante est créée:Le fichier est téléchargé au lieu d'être affiché dans le navigateur

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

Lorsque je tente d'accéder localhost:3000/docs le fichier est téléchargé simplement au lieu d'afficher dans le navigateur. Cela arrive à la fois avec Chrome et Safari.

Il semble lié à ring.util.http-response/ok depuis que je peux reproduire le comportement en utilisant cette voie aussi:

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

Un fichier "hi" est ensuite téléchargé avec le contenu du fichier "hi".

Des idées sur ce qui cause cela? Votre gestionnaire de réponses ne définit pas Content-Type pour le corps de votre réponse.

Répondre

1

Vous pouvez le faire en utilisant ring.util.http-response/content-type:

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

Vous pouvez également envelopper votre gestionnaire dans ring.middleware.content-type/wrap-content-type si les en-têtes sont « devinent » en fonction de l'extension de fichier de l'URI.

+0

Fonctionne bien - merci! – Robert