如两个页面都连接同一个CSS文件
当一个页面打开后,这个CSS文件被加载到
临时文件夹
打开另一个页面后,这个CSS文件会不会再下载一次?
不会
除非你那页面设置不要缓存
要么你等页面加载完成后通过JS操作,要么在循环输出时加载不同的CSS样式,通过变量$i区分样式。如foreach($a as $key=>$value){
$str.="<div class='css{$key}'></div>"
}
页面CSS:
.css0{color:yellow}
.css1{color:blue}
……等等
auto-versioning的实现方案如下:首先,在httpd.conf或者.htaccess中开启urlrewrite规则RewriteEngine onRewriteRule ^(.*)\.[\d]+\.(css|js)$ $1.$2 [L]其中[L]表示如果该条规则匹配,将忽略其他规则。可参考这里The [L] flag causes mod_rewrite tostop processing the rule set. In mostcontexts, this means that if the rulematches, no further rules will beprocessed.接着,使用下面的PHP代码:function auto_version($file){if(strpos($file, '/') !== 0 || !file_exists($_SERVER['DOCUMENT_ROOT'] . $file))return $file$mtime = filemtime($_SERVER['DOCUMENT_ROOT'] . $file)return preg_replace('{\\.([^./]+)$}', ".$mtime.\$1", $file)}以后,诸如下面的代码:<link rel="stylesheet" href="/css/base.css" type="text/css" /改成:<link rel="stylesheet" href="<?=auto_version('/css/base.css')?" type="text/css" /\这样,你不需要再改动任何代码,用户将始终使用最新版本的文件,因为当文件版本变动时,url也会改变。其实该方法也适合其他类型的文件,不仅仅css、js