我正在使用HStringTemplate
数据结构来渲染一个非常简单的模板来填充“漏洞”。模板渲染的结果只是String
我吃toResponse
的。
即使这个呈现的模板是有效的 html happstacktext/plain
用于Content-Type
.
这是什么原因?不应该text/html
是默认的,因为它是一个网络服务器?
我真的需要自己使用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
这是网络服务器的输出:
头
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>