我有网络应用程序,并且有可以刷新商店 Logo 的界面。当我刷新 Logo 时,我得到新文件 last-modified
标题:
Nginx 返回更正后的更新文件。
之后,我再次更新 Logo 。但是我得到旧的标志和旧的 last-modified
,虽然 Logo url 文件已更改(您可以在 url 末尾看到查询时间戳):
如果我通过浏览器执行直接请求,那么我会得到更新的文件:
这可以通过内容长度在文件大小中看到。
我的图像 nginx 配置是:
location ~* ^.+\.(jpg|jpeg|svg|gif|png)$ {
expires 10d;
try_files $uri @app;
}
我不明白我做错了什么。请帮我。提前致谢
最佳答案
没有足够的信息来确定所遇到问题的根本原因;我还想象所有遇到这个问题的新人都会遇到与上面概述的问题略有不同的问题。
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-Since
nor If-None-Match
的信息响应中的标题,并且图片的归属也没有任何意义。
关于Nginx 反复修改后不刷新文件。返回旧的 Last Modified header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50814201/