在Wai中间件中自定义响应头

时间:2013-08-13 04:15:05

标签: haskell haskell-wai

我目前正在使用wai-middleware-static为我的服务器提供自定义页面。但是,我看到我的服务器在每个页面加载时都收到了favicon.ico等的请求,以及我的每一个Web字体,所以我决定检查响应头上的缓存设置,发现那里没有。

wai-middleware-static返回一个Middleware值,我认为这是对每个请求运行的中间件提供的函数的回调。有没有办法修改它以在响应头中添加以告诉浏览器缓存结果?

1 个答案:

答案 0 :(得分:4)

多个中间件可以与正常的功能组合链接在一起,例如:

middleware1 . middleware2

因此,如果您有一个中间件将缓存设置添加到响应中,则应该设置。可能对您有帮助的基本结构是:

addCacheSettings :: Middleware
addCacheSettings innerApp request = do
    innerResponse <- innerApp request
    return $ myHelper innerResponse
  where
    myHelper :: Response -> Response
    myHelper = error "Your logic here"