我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。

我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。

一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。

我现在该怎么办?


当前回答

如果你想清除特定文件的缓存,那么你可以使用proxy_cache_bypass指令。这就是你要做的

location / {
    proxy_cache_bypass $cookie_nocache $arg_nocache;
    # ...
}

现在如果你想绕过缓存,你可以通过传递nocache参数来访问文件

http://www.example.com/app.css?nocache=true

其他回答

find /etc/nginx/cache_folder -type d -exec rm -rvf {} \;
mkdir /etc/nginx/cache_folder
service nginx restart

注意正确指定正确的路径。

在我的nginx安装中,我发现我必须去:

sudo rm -rf /opt/nginx/cache

在那个目录里。如果你知道nginx的安装路径,并且可以找到缓存目录,同样的方法也适用于你。小心使用rm -rf命令,如果你在错误的目录,你可能会删除你的整个硬盘驱动器。

我也有这个问题。

找不到nginx/cache文件夹 发送文件已关闭

我的域名使用cloudflare.com进行DNS(很棒的服务!)啊哈!就是这样:

cloudflare.com ->缓存->清除缓存(我清除了一切) 这解决了我的问题!

可以删除nginx缓存目录,也可以搜索指定文件:

grep -lr 'http://mydomain.pl/css/myedited.css' /var/nginx/cache/*

并且只删除一个文件nginx刷新它们。

这个回答主要是一个总结:

Expires, Age, Cache-Control都是HTTP的概念 查看这些链接:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#caching_static_assets_with_cache_busting

Nginx设置相同,检查下面的链接:

https://nginx.org/en/docs/http/ngx_http_headers_module.html

不缓存,下面可能会有帮助:(可以设置更少的时间缓存重新验证更快):

expires    0;
add_header Cache-Control private;

清除缓存。 . 删除缓存目录下的文件(/var/nginx/cache/) . 重新加载(不是重新启动)nginx - nginx -s重新加载 见https://forum.nginx.org/read.php?2, 2600年、2602年