我的Rails3.2应用在请求中使用-通过#stale? - If-Modified-Since HTTP header,在响应中使用Last-Modified header来决定是否应该动态生成一些数据。这在开发中工作得非常好(无论是使用webrick还是unicorn_rails),因为curl -D headers.txt显示,如果提供了正确的If-Modified-Since值,则会发送304响应,而Last-Modified头则会随请求数据一起发送。
不幸的是,一旦部署在nginx之后,无论是If-Modified-Since (提供正确的头值)都不会传递给unicorn -因此Rails app -或者Last-Modified都不会传播到客户端:请求是无条件生成的,而响应永远不会包含正确的头。
发布于 2012-05-29 16:36:37
事实证明nginx实际上并没有剥离任何东西。检测显示控制器接收到了If-Modified-Since。Rails #stale?收到了一个包含错误结果的请求,这导致了一个nil参数,它默默地接受它,随后忽略了与If-Modified-Since的比较,并将Last-Modified定位为nil。
https://stackoverflow.com/questions/10738118
复制相似问题