1

从事一些 JSF 2.0 项目。有为新/现有用户添加图片的表格。不刷新页面(*.xhtml)就看不到新添加的图片。我试着把常规:

<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0">  

但这没有帮助。

如何禁用页面缓存?

4

1 回答 1

2

当通过 HTTP 提供页面时,将忽略HTML<meta http-equiv>标记。只有当最终用户将页面保存到本地磁盘文件系统,然后通过URL从它打开时,才会解释这些标签。<meta http-equiv>file://

您需要在真实的HTTP 响应上设置这些标头。最简单的方法是使用基本上可以的servlet 过滤器

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

(注意你原来的Cache-Control标题是不完整的,上面的例子是正确的用法)

您可以将其映射到特定页面的 URL 模式上,但您也可以考虑将其映射到 JSF 生成的所有动态页面上。

于 2012-07-09T15:01:04.627 回答