我对缓存的工作方式知之甚少,或者对托管服务器的nginx有很大的控制。但是,我确实有一个需要更改的现场网站,因此您的建议将非常感谢。浏览器会使用不同的ETag缓存页面吗?
目前,我有以下三个文件:
index.html
my.js
my.css
所有文件都被服务(在我的浏览器)具有以下标题:
Date:Wed, 22 Feb 2012 23:17:49 GMT
ETag:"b2c84d1-7551-4b995b0c89c0"
Last-Modified:Wed, 22 Feb 2012 23:14:34 GMT
Server:nginx
有没有任何其他的cache相关的标题。鉴于上述情况,如果我简单地用新版本替换文件,我是否可以假设用户的浏览器将不知道使用缓存版本? (我假设如果我替换文件,ETag将会改变。)
我想避免的情况是用户的浏览器下载新版本index.html
但继续引用缓存版本my.js
,因为这很可能会破坏事物。我还想知道,如果我可以依靠用户查看该网站的较新版本,或者某些用户将继续看到缓存版本。
感谢您的帮助。
谢谢!我没有看到我的浏览器(Chrome)发送了您提到的任一If- *标头,至少在我查看Developer Tools时看不到它们附加到请求。但我会接受你的说法,即更改内容并触摸该文件,这意味着不需要缓存。感谢您的帮助。 – Richard 2012-02-23 01:27:23