我正在使用 Magento,并且有一个功能可以将 CSS 和 Javascript 合并到一个大文件中。
不论其优劣,存在以下问题:
最终文件被缓存在多个级别,包括但不限于:
- 亚马逊云前
- 代理服务器
- 客户端浏览器缓存
Magento 使用连接的 css 文件名的 MD5 和来为合并的 css 文件生成新的文件名。这样每个具有一组不同 css 文件的页面都会得到一个适当的合并 css 文件。
为了解决缓存问题,我还将文件修改时间戳包含在该哈希中,以便在每次修改 css 文件时生成一个新的哈希。
因此,非重新验证缓存分数的全部优势,但如果发生更改,它会立即可见,因为资源链接已更改。
到现在为止还挺好:
唯一的问题是,用于生成 has 的文件名只是通常在 HTML-Head 块中直接引用的文件名,并且不包括这些文件中的 css 导入。
因此,在 css 文件中导入的文件的更改不会导致新的哈希值。
不,我真的不想递归解析所有导入并扫描它们或类似的东西。
我宁愿考虑基于目录的解决方案。有什么东西可以在文件系统的基础上有效地监控“目录内的最后更改”吗?
我们正在使用 ext4。
或者也许还有另一种方法,也许是使用 find 命令,它可以根据 inode 索引完成所有工作?
类似的东西?
我见过很多程序无需扫描整个文件系统即可立即“看到”更改。我相信在 linux 下也有某种“文件操作监视”守护进程可用。
问题是 css 目录非常大。
谁能指出我正确的方向?