我从 5 个正常人类可读的 JavaScript 文件开始 - 它们总共约为 10 KB。
使用YSlow后,我决定合并这 5 个文件并使用 Dean Edwards 的打包器打包它们。现在我有 1 个 4.5 KB 的文件。
当我重新运行 YSlow 时,它现在在“统计”下的已启动缓存中显示 JavaScript 文件,而以前(当我有单独的文件时)将缓存 5 个文件。
现在我的 HTTP 请求减少了 4 个,但已准备好的缓存的总页面重量增加了 4.5 KB。
我做错了什么吗?
我仍然计划在我的 JavaScript 文件夹中放置一个远期到期日期 header ,这样这个问题可能会消失,但我仍然有兴趣知道为什么它不会缓存 JavaScript 文件。
最佳答案
我认为您根本没有做错任何事情,您遵循了所有基本的最佳实践。
当你从没有正确设置 expires
的网络服务器下载某些内容时(我认为是这种情况,因为你想修复这个问题),预置的缓存将始终更高,因为 YSlow 认为即使浏览器已经缓存了所有内容,浏览器也需要下载它。
这是因为缓存在下载时设置为过期,因为没有 Expires header 。更新您的过期时间以使其具有长期有效的过期时间肯定会解决您的问题。
关于javascript - YSlow 说我的 JavaScript 文件在合并 5 个文件并打包后不再缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1820369/