出现这种情况的原因:
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