重复更改后,Nginx 不会刷新文件。返回旧的 Last Modified 标头

Dmi*_*ich 5 caching nginx last-modified browser-cache

我有网络应用程序,并且有可以刷新商店徽标的界面。当我刷新徽标时,我会使用新last-modified标题创建新文件:

在此处输入图片说明

Nginx 返回更正的更新文件。

之后,我再次更新徽标。但是我用 old 得到了旧徽标last-modified,尽管徽标 url 文件已更改(您可以在 url 末尾看到查询时间戳):

在此处输入图片说明

如果我通过浏览器执行直接请求,那么我会得到更新的文件:

在此处输入图片说明

这可以通过内容长度在文件大小中看到。

我的 nginx 图像配置是:

location ~* ^.+\.(jpg|jpeg|svg|gif|png)$ {
       expires 10d;     
       try_files $uri @app;
}
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么。请帮我。提前致谢

cns*_*nst 1

没有足够的信息来确定所遇到问题的根本原因;我还想象所有提出这个问题的新人都会遇到与上面概述的问题略有不同的问题。

Nginx 有http://nginx.org/r/if_modified_since指令,您可以在ngx_http_not_modified_filter_module.c :: ngx_http_not_modified_header_filter()中查看实现的源代码。

一般来说,仅仅因为 URL 具有更改的 epoch 参数(?以 UNIX 时间作为尾随 slug 的部分),并不意味着必须提供新资源,因此,仅仅因为以下原因就确定 nginx 是错误的前两张图片的 URL 不同,但Last-Modified时间相同,不正确。同样,最后的第三张图片列出了一个304 Not Modified响应,但响应中没有有关If-Modified-SinceNORIf-None-Match标头的信息,并且该图片的归属也没有任何意义。