【发布时间】:2011-09-25 18:11:56
【问题描述】:
我的应用程序的一部分提供了一个使用redirect() 方法下载的文件。我发现 Chrome(而不是 Firefox 或 IE,奇怪的是)正在缓存此文件,以便即使它已更改服务器端也可以下载相同的版本。我收集到有一种方法可以告诉浏览器不要缓存文件,例如like this 在 HTML 中,或者在 HTTP 标头中添加一些内容。我可能可以在较低级别的 Web 框架中解决这些问题,但我不知道如何在 Play! 中获取标题,并且 HTML 选项不起作用,因为它不是 HTML 文件。
在 Play! 中似乎总有一种聪明而简单的方法来完成常见任务,那么有没有一种聪明而简单的方法来防止控制器中的缓存?
谢谢!
编辑:
Matt 将我指向http.cacheControl setting,它控制整个站点的缓存。虽然这可行,但我对大多数网站的缓存没有问题,尤其是 CSS 等。如果可能的话,我想一次控制一个 URL 的缓存(在这种情况下指向下载文件的那个)。它不会是一个高流量的网站,所以这只是学术兴趣讨论。
理想情况下,我想做这样的事情:
public static void downloadFile(String url) {
response.setCaching(false); // This is the method I'm looking for
redirect(url); // Send the response
}
【问题讨论】:
标签: java http-headers playframework browser-cache