我不太了解缓存如何工作,或者对托管服务器的nginx服务器有很多控制权。但是,我确实有一个我需要进行更改的实时网站,所以非常感谢您的建议。
目前我有以下三个文件:
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
没有任何其他与缓存相关的标头。鉴于上述情况,如果我只是用新版本替换文件,我可以假设用户'浏览器会知道不使用缓存版本吗? (我假设如果我替换文件,ETag将会改变。)
我希望避免的情况是,用户的浏览器会下载index.html
的新版本,但会继续引用my.js
的缓存版本,因为该&{1}} #39;可能会破坏事物。我还想知道我是否可以依赖用户查看该网站的较新版本,或者某些用户是否会继续看到缓存版本。
感谢您的帮助。
答案 0 :(得分:0)
浏览器会发送If-Modified-Since:
和(如果您有最近的浏览器)If-None-Match:
标头,第一个引用Last-Modified:
标头,后者包含ETag
标头}。如果修改日期比Last-Modified标头更新,则服务器将发送新文件。 ETag如何更改将取决于您的服务器,但在大多数情况下,这将是文件内容的散列。
因此,请确保文件内容的更改和修改日期都是最新的(例如touch /var/www/your-file.js
)。