2013-06-13 3 views
2

Вот мой код, который имеет функцию высыпания простые SYTLE листы:compojure/Clojure GET маршрут с помощью CSS дает простой текст таблицы стилей ответ

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

И когда я вхожу «/style.css» в браузере, он проливает простые текстовые строки, которые не могут использоваться html-файлом, будучи синтаксически правильными. Я предполагаю, что compojure возится с типом контекста, так что браузер интерпретирует мою строку как нечто странное, а не обычный файл css?

+0

Что вы видите в браузере при просмотре источника? – noahlz

ответ

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; }"}) 
0

Вы должны изменить код, чтобы включать в себя следующее:

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

Вы можете проверить this answer для более подробной информации.