nuxt生產環境報錯:Failed to execute 'appendChild' on 'Node': This node type does not support this method...


初次用nuxt,發現它的坑還真不少,一個坑能坑你很久,這里我給大家做一個匯總

今天在打包測試環境的時候發現啟動項目,瀏覽器里報標題所示的錯誤,乍一看,不知所措,就開始找原因,你會發現,在本地開發的時候同樣也有報錯

 

 這里還給你列出了出問題的父級和子級元素,看起來還挺人性化,然后找到自己錯誤所在的問題,挨個兒去注釋代碼,發現代碼執行到v-if語句所在的html塊的時候就會出現這個錯誤,后來我把該頁面所有用到v-if的地方都換成了v-show,結果不報錯,打包測試環境也一切正常~~

個人針對問題感覺雖然好了,但是丈二的和尚摸不着頭腦,不知道為什么會這樣,並且我其他頁面也有定義v-if,它就可以正常執行,但是我發現一個現象,就是出錯的部分是在layouts模板文件中引入的,而不是動態渲染nuxt部分,所以可以猜測應該是模板中的除了動態渲染的部分以外,其余都得用v-show所控制的css樣式去讓它顯示隱藏,而不能用v-if,應該是模板內不支持動態生成元素方法,就如報錯的appendChild

 

還有一種現象就是在服務端打包后在線上訪問一個頁面,第一次打開正常,第二次刷新也會報這個錯誤,於是我看官方有解決方法,鏈接如下:

https://nuxtjs.org/docs/features/nuxt-components/#the-client-only-component

在引入組件的地方,根據nuxt版本去加上no-srr或者client-only即可

If you are using a version of Nuxt < v2.9.0, use <no-ssr> instead of <client-only>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM