我正在开发一个 Rails 3 应用程序,我注意到当按下 Back 时,浏览器会重新显示它在内存中已有的页面,而不是访问服务器。
也就是说,我有 99% 的信心,在我开发的以前的应用程序中,情况并非如此,浏览器会再次访问服务器。
所以,如果我没记错的话,这一定是一些 HTTP 标头/Rails 设置的一些东西,以使事情变得更快捷。
我想知道它是什么,因为在我们通过 JS 大量修改 DOM 的页面中,这对我们来说是一种问题,并且用户最终按下后退并获得“原始”版本,而不是经过大量修改的版本,在某些情况下确实令人困惑。
编辑:我认为这样做已经解决了问题,但它没有:
def force_no_cache_on_back_button
#expires_in -1, :public => false
headers['Pragma'] = 'no-cache'
headers['Cache-Control'] = 'no-cache; no-store; private; must-revalidate; max-age=0'
headers['Expires'] = 1.day.ago.to_s
end
令人惊讶的是,它确实可以在 SSL 证书损坏的 HTTPS 上工作(我们为我们的登台服务器使用自签名),但它在生产环境中不起作用,具有“良好”的 SSL 证书。这很奇怪。
还有其他想法吗?
谢谢!
丹尼尔