我有一个控制器操作,它从数据库中读取图像并将其提供给客户端:
def profilePicture() {
def profilePicture = ProfilePicture.get(1)
response.setHeader("Content-disposition", "attachment; filename=1.png")
response.contentType = "PNG"
response.outputStream << profilePicture.profilePicture
response.outputStream.flush()
}
每次客户端请求图像时,服务器都会以状态200
提供整个图像。如何指示客户端可以缓存此内容?
我已经尝试response.setHeader("Expires", "...")
以及未来的日期,但这没有帮助(我猜这只是故事的一部分,因为服务器没有返回304
)。< / p>
答案 0 :(得分:0)
实际上,Grails有一个名为Caching Headers的插件,它将处理所有需要的缓存和etag生成,以便浏览器在未修改文件且在您配置的缓存期内不会请求下载文件。
如果您阅读文档并花时间测试配置,则使用起来非常简单。