前段时间我注意到,许多大型网站有时会以极少数(甚至一个文件)和奇怪的字母数字名称提供CSS和JS文件。我认为这些文件名是哈希值,这反过来又让我怀疑:
- 他们被缓存
- 动态创建它们是为了减少来自各种CSS和JS“位”的HTTP开销量
一些互联网研究表明我是对的,这种方法有点存在和重视,我想在我正在开发的WAMP / LAMP网站中实现它 - 这个网站由于其模块化插件结构而提供服务经常有很多中小型CSS和JS文件。
<小时/>
这些是我的问题:
- 如何在文件更新时自动更新缓存?我想出的解决方案是为每个页面创建一种“签名字符串”,加入文件路径和最后修改时间,然后使用MD5散列签名并将其提供给缓存以确定散列/文件名是否为存在。这是一种正确的方法吗?任何缺点?
- 下一个合乎逻辑的步骤是缩小。缩小CSS文件非常简单; JS minification也可靠吗?互联网上有什么好的课程吗?
- 另一个问题:已经缩小的脚本怎么样?除了我想到的某种形式的解析之外,唯一的解决方案是比较缩小之前和之后的大小,如果大小在&lt;之后。之前的大小使用PHP缩小的形式。计算开销应该通过缓存解决,对吗?
- 最重要的问题: CSS图片。在这里,我真的没有线索:在不同的地方收集各种CSS 打破所有相对图像链接。我不能使用绝对路径(中断站点可重定位性)。我宁愿不使用CSS图像的标准目录结构(f.ex。将所有CSS引用的图像放在
css/img
目录下),因为潜在的文件名冲突。这也意味着以某种方式解析CSS。我该如何解决这个问题?
- 压缩:我是否必须始终实施基于PHP的软件GZIP压缩,或者(在该领域非常无知)是否可以在Apache服务器上自动实施?
醇>
感谢您的关注。