JS、CSS 文件的版本号控制
2016-02-23 17:01
645 查看
首先,介绍几个常用的 HTTP 响应的状态码:
200 - 服务器已成功处理了请求,并返回所请求的内容。
304 - 自从上次请求后,请求的内容未修改过,浏览器直接从本地缓存中取得,服务器则不会返回。
404 - 服务器找不到请求的内容,通常,对于服务器上不存在的网页经常会返回此状态码。
回到本文主题,一般浏览器打开网页时都会对 JS、CSS 文件进行缓存,以便在下次打开时可以直接从缓存中取出,而不用费劲地向服
务器再次请求。可是如果 JS、CSS 文件在服务器那边被修改过,浏览器从本地缓存中取得的文件就不是最新的了。
这个问题怎么解决?其中一个方法就是为 JS、CSS 文件加上版本号,如:
<link rel="stylesheet" href="/Public/css/index.css?version=20160223" />
<script src="/Public/js/search.js?version=20160223" type="text/javascript"></script>
每当 JS、CSS 文件被修改时,就在调用它的路径后面把版本号也给改了,这样一来,浏览器检测到版本号发生变化,就会向服务器重新请求相应的 JS、CSS 文件了。
在 Google 浏览器的调试工具中,Network 选项卡可以查看文件的请求/响应情况,状态码为 200 表示文件从服务器传来的,304
表示文件是取自浏览器缓存的。
但是我改变版本号之后,第一次刷新(F5,非 Ctrl+F5)还是 304,要刷新两到三次才变成 200。这个问题还需进一步研究......
这个方法的缺点就是:每次修改文件,都要改写版本号,而且如果在多个地方调用了这个文件,还要改多个地方。
所以有必要寻找更好地版本控制的方法。
200 - 服务器已成功处理了请求,并返回所请求的内容。
304 - 自从上次请求后,请求的内容未修改过,浏览器直接从本地缓存中取得,服务器则不会返回。
404 - 服务器找不到请求的内容,通常,对于服务器上不存在的网页经常会返回此状态码。
回到本文主题,一般浏览器打开网页时都会对 JS、CSS 文件进行缓存,以便在下次打开时可以直接从缓存中取出,而不用费劲地向服
务器再次请求。可是如果 JS、CSS 文件在服务器那边被修改过,浏览器从本地缓存中取得的文件就不是最新的了。
这个问题怎么解决?其中一个方法就是为 JS、CSS 文件加上版本号,如:
<link rel="stylesheet" href="/Public/css/index.css?version=20160223" />
<script src="/Public/js/search.js?version=20160223" type="text/javascript"></script>
每当 JS、CSS 文件被修改时,就在调用它的路径后面把版本号也给改了,这样一来,浏览器检测到版本号发生变化,就会向服务器重新请求相应的 JS、CSS 文件了。
在 Google 浏览器的调试工具中,Network 选项卡可以查看文件的请求/响应情况,状态码为 200 表示文件从服务器传来的,304
表示文件是取自浏览器缓存的。
但是我改变版本号之后,第一次刷新(F5,非 Ctrl+F5)还是 304,要刷新两到三次才变成 200。这个问题还需进一步研究......
这个方法的缺点就是:每次修改文件,都要改写版本号,而且如果在多个地方调用了这个文件,还要改多个地方。
所以有必要寻找更好地版本控制的方法。
相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- Web布局连载——两栏固定布局(五)
- 5个常见可用性错误和解决方案
- [div+css]晒晒最新制作专题推广页模板
- [css] line-height 百分比单位和数值单位的区别
- 设计更快的网页(三):字体和 CSS 调整
- 纯CSS制作的新闻网站中的文章列表
- 10条影响CSS渲染速度的写法与使用建议第1/3页
- BS项目中的CSS架构_仅加载自己需要的CSS
- 很不错的 CSS Hack 又学了一招
- 发一个css比较清爽的写法
- CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
- css布局网页水平居中常用方法
- CSS经典技巧十则第1/2页
- css 兼容性问题this.style.cursor=''hand''
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- 欲练CSS ,必先解决IE的一些细节分析
- CSS文字截取功能实现代码
- 支持IE6 IE7 Firefox 的纯CSS的下拉菜单