出現這種情況的原因:
1.伺服器的項目中對應的緩存文件沒有清除,導致客戶端到伺服器讀取的還是之前緩存的js和css文件(未修改之前的代碼)
2.客戶端的瀏覽器沒有清除緩存,或者緩存清除不幹凈,還有緩存存在,導致瀏覽網頁時,讀取的還是本地緩存的css和js文件,沒有去伺服器上面讀取最新的css和js文件
解決方法:
1.針對第一種情況,一般項目發布時,都會清除下伺服器上對應項目的緩存,如果發布的時候忘記清除了,記得要清除一下,因為我之前就是這樣,沒有清除伺服器上面的緩存,導致客戶端讀取的還是伺服器上的緩存文件,所以修改的代碼就沒有生效
2.針對第二種清除,如果已經確認伺服器緩存清除了的話,不是伺服器緩存問題,那麼可以考慮在引用css和js文件後加上一個隨機數(也稱之為版本號)如:
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/common.js?v=20180201"></script>
<link href="<%=request.getContextPath()%>/CSS/Common.css?v=20180201" rel="stylesheet" type="text/css" />
3.第三種方式,如果以上兩種方法都是沒有用的話,那恭喜你了,,遇到了我沒有遇到過的情況,,這種情況下,有種修改情況肯定是可以解決這個問題的,直接修改你引用的css和js文件名稱,這樣子應該肯定是可以的,
如上
㈡ 怎麼查看網頁每一部分的載入速度,比如圖片,js,css文件的載入速度
需要准備的材制料分別是:電腦、chrome瀏覽器。
1、首先,打開chrome瀏覽器,進入要查看的網頁,例如:..com。
㈢ 使瀏覽器自動重新載入css/js文件的最好方法是什麼
auto-versioning的實現方案如下: 首先,在httpd.conf或者.htaccess中開啟urlrewrite規則 RewriteEngine on RewriteRule ^(.*)\.[\d]+\.(css|js)$ $1.$2 [L] 其中[L]表示如果該條規則匹配,將忽略其他規則。可參考這里The [L] flag causes mod_rewrite to stop processing the rule set. In most contexts, this means that if the rule matches, 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