我们最近对 ERP 系统应用了一个补丁,更新了 HTML、JavaScript 和 CSS 文件。应用该补丁后,大量用户致电帮助台,报告菜单页面功能丧失。
根本原因是用户的浏览器 (IE11) 在浏览器缓存中保存了旧的 JavaScript 文件。按键盘上的 F5 或清除缓存可以解决此问题,因为它会强制从服务器下载新版本的 JavaScript 文件。
然而,由于 ERP 系统有几十万用户,因此指导每个用户如何清除缓存是不可能的。
我的问题是:是否有任何服务器端设置可以强制浏览器从服务器(Apache)加载最新的 JavaScript 文件?对于这种情况,有没有最佳实践?
我们知道可以更改浏览器设置以始终加载新文件,但担心会影响网络和服务器性能。此外,由于支持限制,我们无法使用自动版本控制。
任何想法都值得赞赏。
答案1
您需要研究 HTTP 条件 GET 以及如何在您的设置中实现它。
为了解决您当前遇到的问题,您需要重命名软件中的 JavaScript 文件。但是,在执行此操作之前,您需要实现条件 GET。
答案2
您无法通过服务器端配置解决当前的问题,因为客户端不会再次访问服务器,因为它们已经缓存了内容。因此,您对服务器所做的任何更改都不会传达给客户端。
将来,您应该考虑删除或修改服务器当前发送的与缓存相关的标头,以便客户端停止错误地缓存内容。具体该做什么以及如何做取决于系统,但供应商应该能够提供指导,因为这就是您付钱给他们的原因。