Rails和Nginx:覆盖的图像不会重新加载



我有一个web服务器与Nginx和Passenger。

我已经上传了我的rails应用程序并使其运行。一切都很好,但后来我决定改变一个图像(用另一个覆盖它)。我这样做了,然后再次部署。我已经确认新图像位于assets/images文件夹中。

问题是我刷新了web应用程序,html引用了旧图像。它是这样的,直到我重启nginx。没有别的办法重新装子弹了吗?因为如果我在同一台服务器上有多个web应用程序,我不想仅仅因为我更新了一个web资源就重新启动它们。

My nginx conf:

server {
    # Path to ruby version
    passenger_ruby /home/ubuntu/.rvm/gems/ruby-2.2.1/wrappers/ruby;
    listen       80;
    server_name mydomain.com;
    passenger_enabled on;
    root /var/www/myrailsapp/current/public;
    rails_env production;
    location ~ ^/assets/ {
       expires 1y;
       add_header Cache-Control public;
       add_header ETag "";
       break;
    }
    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
      expires 365d;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

你知道问题是什么吗?我怎么才能避免重新启动nginx来重新加载新图像?

为了进一步参考,在@SeanHuber的帮助下,我所要做的就是重新启动乘客的应用程序。

我运行命令:

passenger-config restart-app

更多信息:https://www.phusionpassenger.com/library/admin/nginx/restart_app.html#restart-txt

不重启nginx,只重启passenger:

touch <app_dir>/tmp/restart.txt

最新更新