Android 上的 HTTP Header Cache-Control 似乎不起作用
HTTP Header Cache-Control on Android does not seem to work
我完全迷失了,甚至不知道要做什么 google,也许有人可以在这里把我推向正确的方向:
我有一个 WildFly 服务器 运行,我对 JavaScript 文件做了一些更改。
一旦我将新的 .war 文件重新发布到服务器,由新的 js 文件引起的更改就可以在计算机上的浏览器中看到。
然而,当我打开我的 phone 去查看那里的结果时,什么也没有发生。我清除了缓存,当然,现在出现了变化。在计算机和 phone 上,我都使用 Chrome。
我将 HTTP Header "Cache-Control" 和 "no-cache" 作为值,但这没有做任何事情。
我在 WildFly 前面使用了 NGINX,但我检查了,NGINX 没有过滤掉 header.
我也试过对文件进行版本控制。 WildFly 为此提供了一个非常巧妙的解决方案,如果您偶然发现了这个问题,请查看 this post 以了解它是如何完成的。但这对我也没有用。
有人知道这里发生了什么吗?
感谢任何帮助或意见!
如果通过“Cache-Control
”进行的 cache
清理以某种方式失败,另一种解决方案是为 JavaScript
文件设置一个新版本。例如:
<script type="text/javascript" src="script.js?v=0.01"> // any version number you want
我不太习惯WildFly Server
,但我相信你可以设置一个function
来创建一个随机数,每次刷新页面时都会将其用作新版本。
类似于:<script type="text/javascript" src="script.js?v={random number here}">
希望它能给你指明方向。
结果是时间问题。
手机上的浏览器最终会重新加载当前文件,此后更改会立即可见。
带有版本号的脚本技巧很有魅力。 headers ("Cache-Control: no-cache") 也是如此。两者一起可能非常安全。一个人不能用版本号来完成所有事情,只有包含。
感谢@Azametzin 的输入!
并非所有缓存控制在 Android 设备中的某些浏览器中都支持(不是 Chrome Android),因为缓存控制在 android 中仍然有效设备。一些取自 Android 的浏览器不工作。
我完全迷失了,甚至不知道要做什么 google,也许有人可以在这里把我推向正确的方向:
我有一个 WildFly 服务器 运行,我对 JavaScript 文件做了一些更改。 一旦我将新的 .war 文件重新发布到服务器,由新的 js 文件引起的更改就可以在计算机上的浏览器中看到。
然而,当我打开我的 phone 去查看那里的结果时,什么也没有发生。我清除了缓存,当然,现在出现了变化。在计算机和 phone 上,我都使用 Chrome。
我将 HTTP Header "Cache-Control" 和 "no-cache" 作为值,但这没有做任何事情。 我在 WildFly 前面使用了 NGINX,但我检查了,NGINX 没有过滤掉 header.
我也试过对文件进行版本控制。 WildFly 为此提供了一个非常巧妙的解决方案,如果您偶然发现了这个问题,请查看 this post 以了解它是如何完成的。但这对我也没有用。
有人知道这里发生了什么吗?
感谢任何帮助或意见!
如果通过“Cache-Control
”进行的 cache
清理以某种方式失败,另一种解决方案是为 JavaScript
文件设置一个新版本。例如:
<script type="text/javascript" src="script.js?v=0.01"> // any version number you want
我不太习惯WildFly Server
,但我相信你可以设置一个function
来创建一个随机数,每次刷新页面时都会将其用作新版本。
类似于:<script type="text/javascript" src="script.js?v={random number here}">
希望它能给你指明方向。
结果是时间问题。 手机上的浏览器最终会重新加载当前文件,此后更改会立即可见。
带有版本号的脚本技巧很有魅力。 headers ("Cache-Control: no-cache") 也是如此。两者一起可能非常安全。一个人不能用版本号来完成所有事情,只有包含。
感谢@Azametzin 的输入!
并非所有缓存控制在 Android 设备中的某些浏览器中都支持(不是 Chrome Android),因为缓存控制在 android 中仍然有效设备。一些取自 Android 的浏览器不工作。