我使用Nginx作为网络服务器,并希望实现一种浏览器缓存方法,以便用户在本地保存静态未更改文件的副本,并仅下载已更改的文件。其中一个建议是使用文件时间戳来找出已更改的文件并仅刷新它们,但在我的情况下这是不可能的,因为在每次新部署之后都会创建整个Web应用程序的新版本并且所有文件都是&#39 ;时间戳改变。
我对ETag标题进行了一些研究,它似乎是一个非常好的解决方案,但我发现Etags尚未得到Nginx的正式支持。
有没有办法在Nginx上实施Etags或任何替代解决方案?
答案 0 :(得分:32)
升级您的Nginx。
Syntax: etag on | off;
Default: etag on;
Context: http, server, location
This directive appeared in version 1.3.3.
Enables or disables automatic generation of the “ETag” response header field for static resources.
来源:http://nginx.org/en/docs/http/ngx_http_core_module.html#etag
答案 1 :(得分:15)
所有最新版本的Nginx(比1.3.3更新)都会自动设置这些。
例如:
if t == 0:
I_ext = 1
将返回响应标头location /img {
root /path/to/public;
}
+ Etag
标头。