在JSF页面中缓存图片

时间:2012-07-08 08:30:13

标签: html caching jsf-2

处理一些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">  

但它没有帮助。

如何禁用页面缓存?

1 个答案:

答案 0 :(得分:2)

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

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

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生成的所有动态页面上。