解決方法:
老方法: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