compojure / clojure使用CSS的GET路由提供纯文本样式表响应

时间:2013-06-13 21:18:26

标签: clojure leiningen compojure

这是我的代码,其中包含一个函数,用于说明简单的表格:

(defroutes app-routes (GET "/style.css" [] (my-css-function)))
(defn my-css-function [] "(css strings...)")

当我在浏览器中输入“/style.css”时,它会溢出html文件无法使用的纯文本字符串,同时具有sytanxically正确性。我猜compojure正在弄乱上下文类型,以便浏览器将我的字符串解释为奇怪而不是普通的css文件?

2 个答案:

答案 0 :(得分:4)

my-css-function返回一个字符串,其中 compojure 作为响应的内容返回,如果没有明确指定内容类型,则我的猜测是text/plain或使用text/html

如果要为响应指定text/css内容类型,可以通过以下方式执行此操作:

(defn my-css-function [] 
  {:headers {"Content-Type" "text/css"}
   :body "body { background-color: #CCC; }"})

答案 1 :(得分:0)

您需要修改代码以包含以下内容:

  (route/resources "/") ; special route for serving static files like css
                        ; default root directory is resources/public/

您可以查看this answer了解更多详情。