vue預渲染後打包上線後,刷新當前頁面後會出現首頁突然展示,隨即再回到當前路由下頁面的情況。
這是因爲在使用prerender-spa-plugin預渲染後,配置是對應的路由會生成index.html文件。因爲配置預渲染需要將路由配置爲history模式,在Nginx或者apache配置裏,會將url重定向到根目錄的index.html,所以在頁面還沒有被vue給接管的時候,刷新的一瞬間是會展示預渲染時候生成的根目錄的index.html的內容。
可以看到生成的index.html文件
上圖是通過預渲染生成的index.html文件的 內容。刷新時候展示的就是這個。
解決:
我選擇了一種比較笨的解決方案,就是在默認把根目錄的index.html中id=app的元素設置爲display:none。
然後在app.vue被掛載後,將該屬性設置爲block,即可。因爲在app.vue被掛載後說明頁面肯定已經被vue給接管。所以可行。
到此就結束了,如果刷新過程中出現白屏,可以在index.hml裏面寫一個loading動畫,優化體驗