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