一直以为只要在浏览器里把缓存清除掉就可以了。但今天遇到一个打破我旧认知的事情:
某网站 A 做了修改以后,A 的管理员发通知说让我们去查看。然后跟我同局域网的几个用户在 PC 上用了各种方法(清除缓存,用隐私模式打开,换不同浏览器 ff, brave, edge ),看到的都是旧版本。但我们用手机打开( brave 和 safari) 都能看到新版本。
不在我局域网内的用户用 pc 打开可以看到新版本。
求哪位解释下原因,多谢了。
1
Veneris 2021-12-01 08:05:56 +08:00 via iPhone
或许是 CDN 的问题?
|
2
xiaopc 2021-12-01 08:07:46 +08:00
手机连的是局域网吗,如果不是的话,那就是局域网出口缓存?
|
3
bearwithme OP |
4
icyluna 2021-12-01 08:41:22 +08:00 via iPhone
在 url 结尾加上 ?v=1 之类的参数看看?
|
5
JVMEXCEPTION 2021-12-01 08:57:10 +08:00
url 结尾加参数,强行让电脑访问的缓存服务器 miss hit
|
6
mingtdlb 2021-12-01 09:18:55 +08:00
那就没更新...
|
7
ss098 2021-12-01 09:52:40 +08:00
别怀疑自己,这不是你的问题。
是网站 CDN 节点仍然缓存有旧的内容。 |
8
Chism 2021-12-01 10:41:53 +08:00
Chrome 开启调试,刷新按钮下拉“硬刷新”,如果还是没生效,CDN 先配置缓存时间 0 吧
|
9
wunonglin 2021-12-01 11:01:35 +08:00
一般来说 index.html 不用缓存,这样更新后 index.html 引用的文件路径变了也方便。但是为了性能极致的话,都缓存也行,但是更新后你需要自己更新 cdn 缓存,我用阿里的 cdn ,他上面有缓存刷新
|
10
registerrr 2021-12-01 11:45:39 +08:00
ctrl+shift+R chrome 可以强制刷新(排除本地缓存问题)
|
11
Vegetable 2021-12-01 13:49:43 +08:00
哈哈哈哈哈哈哈哈,cdn
|
12
C603H6r18Q1mSP9N 2021-12-01 13:50:05 +08:00
搞不好就没修改成功
|
13
zloong 2021-12-01 16:22:20 +08:00
如果是单页面应用,nginx 不用缓存 index.html 文件。
|
14
ch2 2021-12-01 19:22:56 +08:00
就是 cdn 没刷新而已
|
15
xumng123 2021-12-01 22:34:58 +08:00 via iPhone
https 了吗?
|
16
bearwithme OP |
17
ch2 2021-12-02 12:09:20 +08:00
@bearwithme #16 网络情况很复杂的,CDN 不保证每个人看到的都是新的,除非你强制每个节点 invalid cache
|