我正在使用Active Admin的相当普遍的实现。
用户使用Active Admin界面更新记录后,更改不会反映在浏览器中,直到用户执行hard refresh( ctrl + F5 )。
在开发或测试中未观察到此行为,但在生产中可以看到。我认为这是一个缓存问题。
有没有办法可以强制显示新更新的信息,以便用户在每次更新记录后都不必强制刷新?
答案 0 :(得分:2)
问题与浏览器或rails缓存无关,但是由于来自Nginx的服务器端缓存。
显然,hard refresh( ctrl + F5 )会告诉Nginx不使用缓存。在硬刷新请求下,Nginx实际上会从rails请求页面内容,然后提供新内容,而不是缓存内容。
现在我已经通过添加到Nginx配置文件来禁用Nginx的缓存来证明这个理论解决了这个问题:
expires off;
然后我用:
重新启动了Nginxservice nginx restart
现在一切正常。看起来像黑魔法,Nginx如何知道(服务器端)用户请求硬刷新。