vue項(xiàng)目 報(bào)Uncaught SyntaxError: Unexpected token < 錯(cuò)誤杆怕,一般是本來script src里應(yīng)該是.js腳本資源然低,但是服務(wù)器卻返回了.html 資源泊窘,出現(xiàn)這種情況很可能是新項(xiàng)目構(gòu)建完后烫沙,用戶還是訪問老的緩存頁面,老的緩存頁面里的script src 引用的資源是服務(wù)器返回的404 html文件頁面或者是被運(yùn)維設(shè)置( try_files $uri $uri/ /index.html;
)成跳轉(zhuǎn)首頁的html 文件(因?yàn)槔系木彺骓撁胬锏膕cript src 資源在你構(gòu)建后 是會(huì)被刪除的)呵晨;如下圖 就是這樣的情況:
這里說是當(dāng)js引用的文件是項(xiàng)目路徑下的文件夾時(shí),會(huì)報(bào)這個(gè)錯(cuò)誤奇钞。當(dāng)時(shí)出現(xiàn)這個(gè)問題 是因?yàn)榍笾业娜怂昧薈DN 導(dǎo)致 (緩存) 訪問了不存在的js岁经,然后這個(gè)404錯(cuò)誤又重新指向了一個(gè)提示的自定義頁面,由于腳本里面不允許出現(xiàn)標(biāo)簽因?yàn)闃?biāo)簽帶了<>符號(hào)蛇券,所以缀壤,就會(huì)拋出這個(gè)異常 從而報(bào)錯(cuò)。
今天 發(fā)現(xiàn)一篇文章---Nginx解決VUE的history模式下刷新404報(bào)錯(cuò)介紹 說nginx配置與代碼靜態(tài)資源打包方式不匹配 也會(huì)導(dǎo)致這樣的錯(cuò)誤
另外提供下 打開瀏覽器 再部署后(沒有刷新瀏覽器)纠亚,點(diǎn)擊路由 報(bào)錯(cuò)的信息
其實(shí)就是報(bào)404 資源找不到塘慕,這個(gè)我采用監(jiān)聽錯(cuò)誤的方式(針對(duì)404),提示用戶是否刷新瀏覽器
//放在 頭部
function getSrcOrHref(msg) {
if (msg.target){
var res=msg.target.src || msg.target.href || msg.srcElement.href || msg.srcElement.src;
if (res){
return res
}else {
return '未知地址'
}
}else {
return '無法找到目標(biāo)'
}
}
function getHost(url) {
var getHostReg=/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;
return getHostReg.exec(url)[0];
}
window.addEventListener('error', (msg, url, row, col, error) => {
// alert('監(jiān)測(cè)到錯(cuò)誤'+msg)
var targetSrc = getSrcOrHref(msg);
if (msg.target && (msg.target.nodeName !=='IMG') && !msg.message && getHost(targetSrc)===window.location.host) {
if (confirm('檢測(cè)到平臺(tái)程序有更新蒂胞,是否需要刷新瀏覽器图呢?')) {
console.error( '可能您的瀏覽器還在使用過期的緩存文件,是否需要幫您自動(dòng)刷新瀏覽器骗随?'+'原因?yàn)檎也坏?+targetSrc);
window.location.reload()
}
}
http://www.reibang.com/u/e0c3321672f5
console.warn(msg.target ? (msg.target.outerHTML || msg.srcElement.outerHTML):'無法找到目標(biāo)地址');
console.warn(
msg, url, row, col, error
);
return true;
}, true);
// 必須捕獲階段執(zhí)行
// window.onerror=function (msg, url, row, col, error) {
// alert('在冒泡階段監(jiān)測(cè)到錯(cuò)誤'+msg)
// }
20190517更新
檢索資料無意發(fā)現(xiàn) <scrpit src='./XXX/XXX/jquery.toggle.button.html' type='text/javascripnt'/>
這種在script中src引入html文件也會(huì)這樣報(bào)錯(cuò)蛤织。 Uncaught SyntaxError: Unexpected token <反思
擴(kuò)展資料:
Uncaught SyntaxError: Unexpected token <