私はHStringTemplate
、データ構造を使用して「穴」を埋める非常に単純なテンプレートをレンダリングするために使用しています。テンプレートレンダリングの結果は、String
私が与えtoResponse
たものです。
このレンダリングされたテンプレートは有効ですが、htmlhappstackは。に使用text/plain
しContent-Type
ます。
これの理由は何ですか?text/html
Webサーバーなので、デフォルトにすべきではありませんか?
本当に自分で使っtoResponseBS
て設定text/html
する必要がありますか?
これが作成するコードですServerPart Response
data Person = Person
{ name :: String
, age ::Int
} deriving (Data, Typeable)
buildTemplate :: Person -> String -> FilePath -> ServerPart Response
buildTemplate fields name template = do
unrendered <- liftIO $ readFile template
ok $ toResponse $ renderTemplate name fields unrendered
renderTemplate :: String -> Person -> String -> String
renderTemplate name fields unrendered = toString rendered
where rendered = setAttribute name fields $ newSTMP unrendered
そして、これがWebサーバーからの出力です。
頭
Connection:Keep-Alive
Content-Type:text/plain; charset=UTF-8
Date:Wed, 09 Jan 2013 14:51:27 GMT
Server:Happstack/7.1.1
Transfer-Encoding:chunked
体
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Memlikweb</title>
</head>
<body>
<h1>Hello, Richard!<h1>
<p>Do you have 25 for me?</p>
</body>
</html>