vue路由在多級頁面下,頁面刷新空白(history模式)

解決方法:

老方法:cli2

需要修改config/index.js文件,將assetsPublicPath的值改為assetsPublicPath: './'

老方法2:cli3

找到項目文件下的vue.config.js(沒有就自己創(chuàng)建一個),將baseUrl:""改成baseUrl:"/"

新方法:cli3.0以上

找到項目文件下的vue.config.js(沒有就自己創(chuàng)建一個),配置publicPath: '/', // 根路徑 cli3.0以上使用publicPath替代baseUrl,解決build后找不到靜態(tài)資源的問題


捕獲.JPG

—————————————————————————————————

以下為發(fā)現(xiàn)問題過程,以及問題分析過程

項目當中,路由模式不設(shè)置時,默認的是hash。
而設(shè)置history后,一級路由刷新頁面不會報錯,而二級以上路由,會出現(xiàn)這么一個問題,

Uncaught SyntaxError: Unexpected token ‘<‘

提示:


報錯.JPG

這時候,我們點擊錯誤,發(fā)現(xiàn)問題出現(xiàn)在public中的index.html中,


報錯.JPG

首先,我們可以排除是vue原頁面的問題,
我們每次刷新頁面的前打開瀏覽器的network,我們再刷新,然后會發(fā)現(xiàn),js請求的位置不對,

// 例如 在一級路由aaa中
// 我們請求app.js位置
aaa/static/app.js
// 這個時候靜態(tài)資源存在
//而在二級路由aaa/bbb中,請求地址會變成
aaa/bbb/static/app.js
// 這就導致了我們請求不到頁面的靜態(tài)資源

原因:
在history模式中,請求多級路由下的靜態(tài)資源,會帶上多級路由的地址

解決方法:

找到項目文件下的vue.config.js(沒有就自己創(chuàng)建一個),配置publicPath: '/', // 根路徑 cli3.0以上使用publicPath替代baseUrl,解決build后找不到靜態(tài)資源的問題

捕獲.JPG
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容