gpt4 book ai didi

java - 如何使用 Play 防止浏览器缓存?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:46 24 4
gpt4 key购买 nike

我的应用程序的一部分提供了一个使用 redirect() 方法下载的文件。我发现 Chrome(奇怪的是不是 Firefox 或 IE)正在缓存这个文件,这样即使它在服务器端发生了变化,也会下载相同的版本。我收集到有一种方法可以告诉浏览器不要缓存文件,例如like this在 HTML 中,或通过向 HTTP header 添加内容。我可能可以在较低级别的 Web 框架中解决这些问题,但我不知道如何获取 Play! 中的 header ,并且 HTML 选项不起作用,因为它不是 HTML 文件。

在 Play! 中似乎总是有一种聪明而简单的方法来完成常见的任务,那么是否有一种聪明而简单的方法来防止在 Controller 中进行缓存?

谢谢!

编辑:

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
}

最佳答案

Play 框架 response 对象有一个 setHeader 方法。您可以像这样添加您想要的标题,例如:

response.setHeader("Cache-Control", "no-cache");

关于java - 如何使用 Play 防止浏览器缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com