【发布时间】:2012-11-15 07:49:21
【问题描述】:
如何让客户端的浏览器使用新的 java 小程序加载新版本的 html 页面?
我们在现场更新了一个系统,但是当客户端连接到 Web 服务器时,仍然显示旧的 Java 小程序(来自缓存)。
如何强制(最好从服务器端)客户端加载新版本,而不是从缓存中加载新版本?
旧系统(升级前):
- 老linux版本(10年以上)
- 旧的 apache 网络服务器(超过 10 年)
- 旧的java小程序(单独的类文件)(大约2岁)
- 网络服务器根目录中的旧 index.html(大约 2 岁)
新系统(升级后):
- 与旧系统相同的 IP 地址和端口
- windows xp 嵌入式
- apache/2.2.21 (win32) 网络服务器
- jar 文件中的新 java 小程序(所有与旧版本不同的类名)
- 网络服务器根目录中的新 index.html
用户在 Windows XP 机器上使用 Chrome
当用户在 Firefox 中加载页面时,新的 java 小程序会显示并完美运行。 (他从来没有在firefox中加载过旧的java小程序)
[编辑]
将 looper 中的行添加到我的 httpd.conf 并没有导致任何错误,但我不确定它是否也能正常工作......
我似乎无法重现我的客户端的缓存问题:当我在小程序中更改某些内容并从另一台计算机再次加载它时,没有任何变化,但是当我在几分钟后重新加载时,它确实显示了新版本.. 没有或没有那些带有 CacheDisable 的额外行
当我在 httpd.conf 中搜索“缓存”时,我发现的只是:
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
所以似乎没有启用缓存?
当我自己添加带有 CacheDisable 的行(没有 IfModule)时,Apache 不想启动,所以它可能会损坏 httpd.conf?
[编辑2]
由于服务器操作系统、web服务器、java类名以及除index.html之外的所有文件名都与旧版本不同,所以一定是缓存的index.html是问题的原因。 我将 FrancescoMM 的回答中的元标记添加到我的 index.html 中,希望这能防止未来版本出现问题
【问题讨论】:
-
@zch :旧系统不使用 jar 文件(所有单独的类文件),新系统确实使用 jar 文件,因此您可以说 jar 文件具有不同的名称(并且jar 文件中的类名也与旧类不同)
标签: java html apache google-chrome windows-xp-embedded