我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
我使用nginx作为前端服务器,我已经修改了CSS文件,但nginx仍然服务于旧的。
我尝试重新启动nginx,没有成功,我已经谷歌了,但没有找到一个有效的方法来清除它。
一些文章说我们可以删除缓存目录:var/cache/nginx,但在我的服务器上没有这样的目录。
我现在该怎么办?
当前回答
我也有这个问题。
找不到nginx/cache文件夹 发送文件已关闭
我的域名使用cloudflare.com进行DNS(很棒的服务!)啊哈!就是这样:
cloudflare.com ->缓存->清除缓存(我清除了一切) 这解决了我的问题!
其他回答
对于那些其他解决方案不工作,检查你是否使用DNS服务,如CloudFlare。在这种情况下,激活“开发模式”或使用“清除缓存”工具。
我有完全相同的问题-我在Virtualbox中运行我的nginx。我没有打开缓存。但是看起来sendfile在nginx.conf中被设置为on,这就是导致问题的原因。@kolbyjack在上面的评论中提到过。
当我关闭发送文件-它工作得很好。
这是因为:
Sendfile用于“在一个文件描述符和另一个文件描述符之间复制数据”,显然在虚拟机环境中运行时存在一些实际问题,或者至少在通过Virtualbox运行时。在nginx中关闭这个配置会导致静态文件通过不同的方法被服务,你的更改会立即毫无疑问地反映出来
它与这个错误有关:https://www.virtualbox.org/ticket/12597
我也有这个问题。
找不到nginx/cache文件夹 发送文件已关闭
我的域名使用cloudflare.com进行DNS(很棒的服务!)啊哈!就是这样:
cloudflare.com ->缓存->清除缓存(我清除了一切) 这解决了我的问题!
如果你想清除特定文件的缓存,那么你可以使用proxy_cache_bypass指令。这就是你要做的
location / {
proxy_cache_bypass $cookie_nocache $arg_nocache;
# ...
}
现在如果你想绕过缓存,你可以通过传递nocache参数来访问文件
http://www.example.com/app.css?nocache=true
在我的例子中,它是在/etc/php/7.2/fpm/php.ini (Ubuntu)中启用的opcache:
opcache.enable=1
将其设置为0使服务器加载(php)文件的最新版本。