記錄工作中遇到比較奇怪和難排查的問題:打開前端vue項目,頁面無任何反應
一、控制台報錯:
1、Resource interpreted as Stylesheet but transferred with MIME type text/html: "https://moli.lenovo.com/callcenter/static/css/app.e724dc7….css".
查詢這個警告發現:css的文件的http下載請求返回不符合預期(想返回css層疊樣式,結果返回了Index.html)。
2、vendor.4b69aca….js:1 Uncaught SyntaxError: Unexpected token '<'
查看了以上js文件發現,js文件的返回內容也是Index.html文件,故瀏覽器js引擎執行失敗導致代碼報錯,無法繼續向下執行。
3、bootstrap 0d6cc43…:54 Uncaught TypeError: Cannot read property 'call' of undefined at t (bootstrap 0d6cc43…:54) at Object.NHnr (AnswerProductInfoList.vue:27) at t (bootstrap 0d6cc43…:54) at window.webpackJsonp (bootstrap 0d6cc43…:25) at app.37fbacd….js:1
二、項目背景和部署環境:
負載均衡通過AWS 的 ELB實現,ElB分別可開啟server1和server2服務,也可以同時開啟server1和server2。目前server1的前端版本為2.6.8,server2的前端版本為2.7.0。由於目前同時開啟了server1和server2。導致部分進入server2的用戶,其靜態文件(css/js)下載時,走的server1的服務,因為兩台服務器的靜態文件的版本號不一致,導致文件下載失敗。返回了nginx映射的index.html文件內容。
解決方法:ELB同時開啟server1和server2的前提條件應該是server1和server2的代碼版本一致
排查問題參考連接: