我發現如果您將文件的上次修改時間戳添加到URL的末尾,則瀏覽器會在修改文件時請求文件。例如在PHP中:
function urlmtime($url) {
$parsed_url = parse_url($url);
$path = $parsed_url['path'];
if ($path[0] == "/") {
$filename = $_SERVER['DOCUMENT_ROOT'] . "/" . $path;
} else {
$filename = $path;
}
if (!file_exists($filename)) {
// If not a file then use the current time
$lastModified = date('YmdHis');
} else {
$lastModified = date('YmdHis', filemtime($filename));
}
if (strpos($url, '?') === false) {
$url .= '?ts=' . $lastModified;
} else {
$url .= '&ts=' . $lastModified;
}
return $url;
}
function include_css($css_url, $media='all') {
// According to Yahoo, using link allows for progressive
// rendering in IE where as @import url($css_url) does not
echo '<link rel="stylesheet" type="text/css" media="' .
$media . '" href="' . urlmtime($css_url) . '">'."\n";
}
function include_javascript($javascript_url) {
echo '<script type="text/javascript" src="' . urlmtime($javascript_url) .
'"></script>'."\n";
}
嗨格羅姆,我試過這種方法。然而,我發現,一旦我包含參數瀏覽器沒有緩存的CSS文件。它每次重新訪問頁面時都會加載css文件而不緩存它。我通過繼續在css文件中進行更改來檢測此問題,以查看瀏覽器是否緩存css文件。我正在使用chrome。我可以知道如何讓瀏覽器緩存css文件並只在參數發生變化時才加載?謝謝。 – davidlee 2010-07-25 13:32:42
@benmsia,你有沒有看過請求CSS文件時返回的HTTP頭? – grom 2010-07-26 23:38:55