我正在编写一个脚本,它将合并和缩小请求的 CSS 文件,然后将它们回显出来。我已经完成了大部分工作,但是我被困在一件小而非常重要的事情上:利用浏览器缓存。
我们网站的大多数访问者都是新来的,而且很少回来。所以我们真正担心的是同一会话中页面请求之间的缓存。就像,他们点击了我们的主页,然后导航到其他几个页面并离开。
我遇到的问题是我在会话中存储了每个特定文件集的最后请求时间的时间戳。因此,如果我想要 main.css 和 internet.css 这个请求,然后是 main.css 和 phone.css 下一页视图,那么最后一个请求的时间戳将被更新,但如果我再次请求同一组文件,时间戳将与上次保持不变。
希望我说得通。问题是,当一个文件从上次请求到这个请求没有改变时,我返回 304 not modified。但是,浏览器并没有像应有的那样缓存 css。关于为什么不的任何想法?
你可以在这里看看我的代码:https ://gist.github.com/4235836 (我通常会把它放在这里,但它有点长)