2

这是我的代码,它具有溢出简单样式表的功能:

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

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

4

2 回答 2

4

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

如果要指定text/css响应的内容类型,可以通过以下方式进行:

(defn my-css-function [] 
  {:headers {"Content-Type" "text/css"}
   :body "body { background-color: #CCC; }"})
于 2013-06-13T21:40:00.663 回答
0

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

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

您可以查看此答案以获取更多详细信息。

于 2016-06-02T12:37:40.430 回答