seajs 添加版本号



用 seajs 组织项目,上线后,经常需要更新特定文件或所有文件的时间戳,以清空浏览器缓存。最简单的方式是:

define(function(require, exports) {
  var a = require('path/to/a.js?20110801');
});

这种方式很简单直观,弊端也很明显:文件一多,时间戳会分散在各个文件,维护起来不方便。

第二种方式是利用 alias:

seajs.config({
  alias: {
    'jquery': 'jquery/1.6.2/jquery',
    'backbone': 'backbone/0.5.1/backbone',
    'a': 'a.js?20110801',
    'b': 'b.js?20110801'
  }
});

这种方式用来维护 jquery 等类库模块的版本号是非常方便的。但用来加时间戳,文件一多时,依旧不方便。

第三种方式是利用 map:

seajs.config({
  'map': [
    [ /^(.*\.(?:css|js))(.*)$/i, '$1?20110801' ]
  ]
});

这种方式,用来批量更新时间戳是最方便的。

假设文件存放路径如下:

http://example.com/libs/seajs/1.0.0/sea.js
http://example.com/libs/jquery/1.6.2/jquery.js
http://example.com/libs/backbone/0.5.1/backbone.js
http://example.com/app/xxx/a.js
http://example.com/app/xxx/b.js
http://example.com/app/xxx/c.css

为了方便版本和时间戳管理,建议配置如下:

config.js:

seajs.config({
  alias: {
    'jquery': 'jquery/1.6.2/jquery',
    'backbone': 'backbone/0.5.1/backbone'
  },
  map: [
    [ /^(.*\/app\/xxx\/.*\.(?:css|js))(?:.*)$/i, '$1?20110802' ]
  ]
});

这样配置好后,在具体模块代码里,就不再需要考虑时间戳了:

define(function(require, exports) {
  var $ = require('jquery');
  var BB = require('backbone');

  var a = require('./a');
  var b = require('./b');
  require('./c.css');

  // ...
});
需要把app,xxx等修改成自己的路径地址,修改的是指定文件目录下面的文件
<span style="font-family: Arial, Helvetica, sans-serif;">第四种:默认给所有的js,css文件增加时间戳。</span>
seajs.config({
  alias:{
    'jquery': 'jquery/1.6.2/jquery',</span>
    'backbone': 'backbone/0.5.1/backbone'
  },
  map: [
    [ /^(.*\.(?:css|js))(.*)$/i, '$1?'+new Date().getTime()]
  ]
 
 
});
修改的目录下面所有的css,js文件,后面都会加上时间戳。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值