从事一些 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">
但这没有帮助。
如何禁用页面缓存?
当通过 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 生成的所有动态页面上。