在我们的项目中,我们有一大堆小的 css/js 文件,所以当我们构建视图时,我们会发现自己编写了很多<link>
或<script>
标签,迫使浏览器对我们的 css/js 内容提出许多请求。为了解决这个问题,我们开始寻找一种方法让服务器将所有这些都支持到一个请求中,该请求将与操作关联的每个 css 文件或每个 js 文件转储到响应中。
无需过多介绍,我们创建了一个 Helper 类,它接受文件、连接它们并呈现如下标签:
<script type="text/javascript" src="/content/js15628453.rails"></script>
ContentController 然后有一个默认操作,它使用“js15628453”来查找 Helper 存储连接文件的位置并将其输出。这真的很好用。
然而,正如 Firebug 报告的那样,浏览器总是向“/content/js15628453.rails”发送请求以获取连接文件,尽管 URL 始终相同并且响应始终相同。我已经尝试了所有类型的 HTTP Cache-Control
、Expires
、Last-Modified
等标头组合,但还没有得到 Firebug 报告的从缓存中加载的内容。
为什么浏览器会忽略这些标头?有没有其他选项我可以尝试强制它被缓存?