我有一个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