4
我想通過實現一個簡單的Web應用程序開始使用Clojure和Clojurescript。事情會相當不錯,到目前爲止,並從不同的教程,我想出了下面的代碼讀取:如何在Ring-Compojure應用程序上設置Content-Type標題
core.clj:
(ns myapp.core
(:require [compojure.core :as compojure]
[compojure.handler :as handler]
[compojure.route :as route]
[myapp.controller :as controller]))
(compojure/defroutes app-routes
(compojure/GET "/" [] controller/index)
(route/resources "/public")
(route/not-found "Not Found"))
(def app
(handler/site app-routes))
controller.clj:
(ns myapp.controller
(:use ring.util.response)
(:require [myapp.models :as model]
[myapp.templates :as template]))
(defn index
"Index page handler"
[req]
(->> (template/home-page (model/get-things)) response))
模板。 CLJ:
(ns myapp.templates
(:use net.cgrand.enlive-html)
(:require [myapp.models :as model]))
(deftemplate home-page "index.html" [things]
[:li] (clone-for [thing things] (do->
(set-attr 'data-id (:id thing))
(content (:name thing)))))
問題是我無法在這個網頁上顯示非ASCII字符,我不知道該怎麼在頁面上設置HTTP標頭。
我看到這樣的解決方案,但我根本無法揣摩出它們放在我的代碼:
(defn app [request]
{:status 200
:headers {"Content-Type" "text/plain"}
:body "Hello World"})
P.S:關於風格和/或代碼組織的任何建議,歡迎。
謝謝爲你的答案。這有效,但有一個小小的更正:我必須在r /響應後刪除雙箭頭宏。 – slhsen