我注意到,在我的生产环境(我已经实现了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)$
这将只匹配以点结尾的路径的请求,然后匹配这七个模式中的一个。