2

我正在使用 Active Admin 的一个相当普通的实现。

用户使用 Active Admin 界面更新记录后,更改不会反映在浏览器中,直到用户执行硬刷新( ctrl+ F5)。

在开发或测试中未观察到此行为,但在生产中可以看到。我相信这是一个缓存问题。

有没有办法可以强制显示新更新的信息,这样用户就不必在每次记录更新后强制刷新?

4

1 回答 1

2

该问题与浏览器或 rails 缓存无关,而是由于来自 Nginx 的服务器端缓存

显然,硬刷新ctrl+ F5)会告诉 Nginx 不使用缓存。Nginx 在硬刷新请求下,实际上会从 rails 请求页面内容,然后提供新内容,而不是缓存内容。

现在我已经禁用了 Nginx 缓存来证明这个理论通过添加到 Nginx 配置文件中解决了这个问题:

expires off;

然后我重新启动了 Nginx:

service nginx restart

现在一切正常。看起来像是黑魔法,Nginx 如何知道(服务器端)用户请求硬刷新。

于 2013-07-05T21:02:59.637 回答