• angular,require ,oclazyload项目如何加入版本控制


    具体github项目地址

    一个项目从上线了以后再维护,客户端由于有缓存报错了,这是了尴尬的时刻,因为他们不懂怎么清理缓存,这时候就要进行访问的时候就要进行强制刷新了,

    例如引入的css文件为

    <link rel="stylesheet" href="style.css">

    这样在服务端更新加入代码了,如何使客户端强制刷新

    简单粗暴的是直接改css名字,显然这是不科学的,改到自己都词穷。

    这时候我们可以用版本就行控制

    <link rel="stylesheet" href="style.css?v=1-0-0">

    这样可以强制刷新了

    注意你的css名字还是叫style.css只是你引入的时候加了?v=1-0-0

    当你下次再稍微该这个文件时,你的 可能就是?v=1-0-1

     

    grunt中有加入版本控制的方法,可以进行研究,后续我也会进行学习,到时候把只是分享到这里

    言归正传,require.js怎么加入版本号

    把reuirejs下面的代码

    return config.urlArgs && !/^blob:/.test(url) ?
                       url + config.urlArgs(moduleName, url) : url;

    替换为

    if (!config.urlArgs) {
        return url;
    }
    
    if (typeof config.urlArgs === 'string') {
        return url + ((url.indexOf('?') === -1 ? '?' : '&') + config.urlArgs);
    }
    
    //handle the urlArgs with a function
    //give each file it's own urlArgs
    if (isFunction(config.urlArgs)) {
        var urlArgs;
        try {
            urlArgs = config.urlArgs.call(config, moduleName, url);
        } catch (e) {
            urlArgs = "";
        }
    
        return url + ((url.indexOf('?') === -1 ? '?' : '&') + urlArgs);
    }

    https://github.com/xingkongwuyu/zhihu/blob/master/js/lib/require.js  可以参考这个

    配置怎么配置呢?这样

    <script type="text/javascript" src="require.js" data-main="main"></script>

    require.config({
        //你的配置+
     
        urlArgs:'v=1-9-2'
    })
  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    1221. 分割平衡字符串
    1528. 重新排列字符串
    1450. 在既定时间做作业的学生人数
    1266. 访问所有点的最小时间
    1572. 矩阵对角线元素的和
    使用Python进行数据传输
    分布式系统的原理与设计
    分布式缓存
    Centos6 配置最新yum源
  • 原文地址:https://www.cnblogs.com/heyinwangchuan/p/6659210.html
Copyright © 2020-2023  润新知