将版本控制工作字符串添加到 css 文件路径是否会阻止所有浏览器缓存


Will adding a versioning workstring to css file path prevent caching by all browsers?

PHP:我正在尝试确定在更改CSS文件时防止缓存的最佳方法。我正在使用IE6/7/8/9,Firefox,Chrome,iPAD和其他一些未提及的浏览器。代码是带有CodeIgniter的PHP。我正在研究一个 mod 重写规则以提供修改后的路径;类似于/timestamp/file.css。但是,后来我注意到一些帖子说你可以将工作字符串添加到CSS文件中,浏览器就会将其视为一个新文件 - 只要工作字符串部分发生了变化。 此工作字符串方法是否适用于所有浏览器? 类似于 file.css?v=1234567890。如果 v 更改,浏览器应该重新缓存?我可以信任这种方法吗?

<?php
echo '<link rel="stylesheet" type="text/css" href="file.css?v=' . filemtime('file.css') . '" />';
?>

是的,应该的。就浏览器而言,不同的查询字符串是一个完全独立的 URL。

是的,除非 HTML 本身(包括您的 URL(被缓存。