我的Rails 3.2应用程序使用 - 通过请求中的#stale?
- If-Modified-Since
HTTP标头和响应中的Last-Modified
标头来决定是否应该动态生成一些数据。这在开发中非常有效(无论是使用webrick还是unicorn_rails),因为curl -D headers.txt
表示如果提供了正确的If-Modified-Since
值,则会发送304响应,而另外发送Last-Modified
标头请求数据。
不幸的是,一旦部署在nginx后面,If-Modified-Since
(提供正确的标头值)都不会传递给独角兽 - 因此Rails应用程序 - 也不会Last-Modified
传播到客户端:请求无条件生成并且响应永远不会包含正确的标题。
答案 0 :(得分:1)
事实证明,nginx实际上并没有剥离任何东西。仪表显示控制器已收到If-Modified-Since
。 Rails #stale?
收到包含错误结果的请求,导致nil
参数,以静默方式吞下它,随后忽略与If-Modified-Since
的比较并将Last-Modified
定位到nil
}。