最大年龄与nginx /乘客/ memcached / rails2.3.5

我注意到,在我的生产环境(我已经实现了memcached)看到在萤火虫caching控制 – 最大年龄标题,任何时候我在看索引页(例如职位)。

Cache-Control max-age=315360000 

在我的开发环境,这头看起来像下面。

 Cache-Contro private, max-age=0, must-revalidate 

据我所知,我没有做任何特别的与我的nginx.conf文件指定最大年龄为常规内容,我有expires-MAX设置为CSS,JPG等这里是我的nginx.conf文件..

http://pastie.org/1167080

那么为什么这个caching控制被设置? 我怎样才能控制这个caching控制,因为这样的副作用有点不好。 这是发生了什么事。

1 – 用户请求all_posts列表并获得10页的列表(分页)

2 – 用户查看页面1,2 3和相应的caching已创build。

3 – 用户返回页面1,Firefox甚至不向服务器发送请求。 通常我会期望它会reqeust并击中在步骤#2中创build的caching。

另一个问题是,如果一个新的职位已经创build,现在caching刷新,它应该在页面1的顶部,用户不会看到它。因为浏览器没有打到服务器。

请帮忙!

谢谢

更新:

我尝试在我的索引操作中设置expires_now。 没有什么区别,最大年龄仍然是一样大的价值。

这可能是我的最大年龄正则expression式的问题? 我基本上希望它只匹配资产文件(图像,JS,CSS等)

我认为你是对的,这是你的max-age正则表达式的一个问题。

您正在匹配此模式: ^.+.(jpg|jpeg|gif|png|css|js|swf)?([0-9]+)?$

因为在加了括号的部分后面有问号(“这部分是可选的”),所以正则表达式的唯一必需部分是请求URI至少包含两个字符( .+. )。 换句话说,它是相当接近每个请求到您的网站。

这是我们使用的模式: \.(js|css|jpg|jpeg|gif|png|swf)$

这将只匹配以点结尾的路径的请求,然后匹配这七个模式中的一个。