1

我使用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")).

然后下载文件“hi”和文件内容“hi”。

关于造成这种情况的任何想法?

4

1 回答 1

2

您的响应处理程序没有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 中的文件扩展名“猜测”标头。

于 2016-02-22T08:25:19.820 回答