Rails 和 Nginx:未重新加载被覆盖的图像

Rails and Nginx: Overwritten images not reloaded

我有一个带有 Nginx 和 Passenger 的网络服务器。

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

问题是我刷新了网络应用程序,html 引用了旧图像。就这样,直到我重启了nginx。没有其他方法可以重新加载吗?因为如果我在同一台服务器上有多个网络应用程序,我不想仅仅因为我更新了一个网络资产就重新启动它们。

我的 nginx 配置:

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 以重新加载新图像?

不重启nginx,只重启passenger:

touch <app_dir>/tmp/restart.txt

为了进一步参考,在@SeanHuber 的帮助下,我只需要重新启动 passenger 上的应用程序。

我做到了运行命令:

passenger-config restart-app

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