wang1dot0 / personal-note

记录工作中遇到的个人觉得比较有意思的小问题
https://github.com/wang1dot0/personal-note
0 stars 0 forks source link

Vue项目重新build之后,旧页面资源找不到导致页面点不动的问题 #17

Open wang1dot0 opened 5 years ago

wang1dot0 commented 5 years ago

做项目时,QA报了一个bug,就是偶现的GNB菜单点不了的问题。因为是偶现我总是在本地重现不了。后面偶然间发现在我打开的线上页面中复现了,当时打开控制台,发现报错,相关的资源找不到。我就纳闷,好好的怎么就找不到了呢?手贱刷新了一下,就神器的发现,一切都工作正常了。后来阴差阳错的又遇到了一次,怀疑是重新发布导致的打包资源找不到了,查看发布历史果然最近有一次发布。于是断定是这个原因造成的:每次build都会导致打包文件的md5变化,而vue-router的特性是页面级的更新,而不是刷新,导致寻找原来的md5文件时已经被删除了,服务端又有了新md5资源文件,所以出现了找不到资源的情况。本地之所以没有重现,是因为本地的打包资源并没有加md5,所以资源即使更新了,文件名并没有变,也不会有什么影响。 估计这也是选择深夜发布的原因吧!!! 目前另一个方案就是保留最新打包的两版资源文件,这样就可以杜绝这类问题。 目前没有更好的解决方案~