重命名 xhtml 页面后,旧文件被加载到 jsf 中

After renaming xhtml pages, old file getting loaded in jsf

我遇到了一些无法调试的奇怪问题。

我们的应用程序服务器需要停机,因此我们为我们的网站构建了临时 xhtml 页面,该页面将给出临时服务器已停机的消息。我们的计划是,在停机期间,我们会将原来的 index.xhtml 页面重命名为类似 index-original.xhtml 的名称,并将 downtime.xhtml 重命名为 index.xhtml。所以在停机期间我们可以显示网站暂时不可用的页面。我们将在停机时间结束后恢复这些更改

现在当我们测试这个重命名的东西时,我们发现即使在将停机页面重命名为 index.xhtml 并保留原始索引页面后,浏览器仍在加载原始索引页面。我们在登录过滤器中使用以下代码禁用了缓存。

res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
        res.setDateHeader("Expires", 0); // Proxies.
        res.setHeader("Access-Control-Allow-Origin", "*");

我从服务器日志中发现,请求正在访问服务器,但不知何故浏览器仍然显示旧页面。当我检查浏览器的开发人员工具时,我发现该页面不是从缓存中加载的,而是来自服务器的。但不知何故服务器在重命名后返回旧页面

一台服务器重启后,显示重命名的停机页面。

当我们希望在停机时间结束后返回原始主页页面时,需要重新启动同一台服务器。

我担心的是,为什么需要重新启动服务器才能使此重命名生效?它不应该在请求到达服务器时直接加载重命名的文件吗?

我在 chrome 开发者工具

中偶尔收到以下消息
  1. 文档是从带有清单的应用程序缓存中加载的 https://www.google.co.in/_/chrome/newtab/manifest?espv=2&ie=UTF-8

  2. 应用程序缓存检查事件

  3. 应用程序缓存无更新事件

但是在开发者工具的网络部分,没有显示页面是从缓存中加载的。

作为一名初级开发人员,我在这里感到非常困惑。

很可能您打开了 facelet 缓存。请参阅此 Whosebug 答案 JSF and automatic reload of xhtml files