vue打包靜態(tài)資源后顯示空白及static文件路徑報(bào)錯(cuò)的解決
今天使用vue打包(npm run build)遇到了幾個(gè)坑,在這里分享給大家
打包之后打開dist的頁面顯示空白:
這個(gè)問題以前就處理過,是打包過程中出現(xiàn)錯(cuò)誤頻率較高的一種,可能有3處地方會出現(xiàn)這種情況
1、記得改一下config下面的index.js中bulid模塊導(dǎo)出的路徑。因?yàn)榇虬蟮膇ndex.html里邊的內(nèi)容都是通過script標(biāo)簽引入的,默認(rèn)顯示的路徑不對,打開肯定是空白的。
build: {
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/',
productionSourceMap: true,
devtool: '#source-map',
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
bundleAnalyzerReport: process.env.npm_config_report
}
這里需要將 assetsPublicPath: '/'改為assetsPublicPath: './',
2.src里邊router/index.js路由配置里邊默認(rèn)模式是mode:'hash'(頁面會在路由上加#),有時(shí)候改成了history(純凈路由)模式的話,打開也會是一片空白。所以改為hash或者直接把模式配置刪除,讓它默認(rèn)的就行 。
export default new Router({
//mode: 'history',
mode:'hash',\\或者直接不寫
routes: [{}]
)}
3.也有可能是因?yàn)楸尘皥D片路徑?jīng)]有配置需要在build/utils.js添加配置publicPath: '../../'
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
publicPath:'../../',
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
打包后找不到響應(yīng)路徑:
這都是比較常見的幾種解決方式,如果將靜態(tài)資源的圖片路徑作為綁定數(shù)據(jù)以js引入,圖片放入了static里面用來引入這個(gè)頁面又該怎樣處理呢,如果以絕對路徑訪問vue打包是不會處理這一類的,所以打包后它圖片訪問的路徑不會更改,而打包后dist文件里就只有index.html和webpack不會處理的static文件夾(vue static/下的文件都不會被Webpack處理:它們使用相同的文件名,直接拷貝到最終的路徑)
解決方式有兩種,
1.如果要上線的話,需要將你的主域名加在static之前然后他會逐級去訪問打包后的文件。
return {
isShow:true,
imgData:'',
myUpPic:'/yourDN/static/img/logo.png'
}
2.由于vue將組件訪問靜態(tài)資源的路徑配置好了,你可以直接/static來找到static下的文件,但是這里的問題就是你訪問的時(shí)候它是逐級訪問這些文件的,所以打包后他還是會找不到靜態(tài)資源的文件,在這里你就需要將/static改成./static,這樣的話他就會在打包后的文件夾下直接訪問其之下的靜態(tài)資源文件夾。
return {
isShow:true,
imgData:'',
//myUpPic:'/static/img/logo.png'
myUpPic:'./static/img/logo.png'
}
以上就是個(gè)人處理vue打包bug的一些小經(jīng)驗(yàn),希望這些能夠?qū)Υ蠹矣兴鶐椭?/p>
補(bǔ)充知識:vue打包后路徑多了個(gè)/css/static
vue打包后路徑多了個(gè)/css/static導(dǎo)致一些css屬性效果不顯示。
解決方法:
在build/utils.js文件中添加publicPath:'…/…/',重新打包即可。
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: "vue-style-loader",
publicPath: "../../"
});
} else {
return ["vue-style-loader"].concat(loaders);
}
以上這篇vue打包靜態(tài)資源后顯示空白及static文件路徑報(bào)錯(cuò)的解決就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue打包報(bào)錯(cuò):ERROR in static/js/xxx.js from UglifyJs undefined問題
- 用electron打包vue項(xiàng)目中的報(bào)錯(cuò)問題及解決
- 關(guān)于vue3?解決getCurrentInstance?打包后線上環(huán)境報(bào)錯(cuò)問題
- 解決vue打包報(bào)錯(cuò)Unexpected token: punc的問題
- vue打包npm run build時(shí)候界面報(bào)錯(cuò)的解決
- vue 解決uglifyjs-webpack-plugin打包出現(xiàn)報(bào)錯(cuò)的問題
- 解決vue打包后刷新頁面報(bào)錯(cuò):Unexpected token <
- vue-cli 打包后提交到線上出現(xiàn) "Uncaught SyntaxError:Unexpected token" 報(bào)錯(cuò)
- 打包組件報(bào)錯(cuò):Error:Cannot?find?module?'vue/compiler-sfc'
相關(guān)文章
Vue3項(xiàng)目打包后部署到服務(wù)器 請求不到后臺接口解決方法
在本篇文章里小編給大家整理了關(guān)于Vue3項(xiàng)目打包后部署到服務(wù)器 請求不到后臺接口解決方法,有需要的朋友們可以參考下。2020-02-02
element-plus結(jié)合sortablejs實(shí)現(xiàn)table行拖拽效果
使用element-plus的el-table組件創(chuàng)建出來的table,結(jié)合sortable.js實(shí)現(xiàn)table行拖動排序,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,感興趣的同學(xué)可以自己動手試一試2023-10-10
node+vue前后端分離實(shí)現(xiàn)登錄時(shí)使用圖片驗(yàn)證碼功能
這篇文章主要介紹了node+vue前后端分離實(shí)現(xiàn)登錄時(shí)使用圖片驗(yàn)證碼,記錄前端使用驗(yàn)證碼登錄的過程,后端用的是node.js,關(guān)鍵模塊是svg-captcha,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
vue3 template轉(zhuǎn)為render函數(shù)過程詳解
在 Vue 中,template 模板是我們編寫組件的主要方式之一,而 Vue 內(nèi)部會將這些模板轉(zhuǎn)換為 render 函數(shù),render 函數(shù)是用于創(chuàng)建虛擬 DOM 的函數(shù),通過它,Vue 能夠高效地追蹤 DOM 的變化并進(jìn)行更新,下面我會通俗易懂地詳細(xì)解釋 Vue 如何將 template 轉(zhuǎn)換為 render 函數(shù)2024-10-10
前端Vue項(xiàng)目部署到服務(wù)器的全過程以及踩坑記錄
使用Vue做前后端分離項(xiàng)目時(shí),通常前端是單獨(dú)部署,用戶訪問的也是前端項(xiàng)目地址,因此前端開發(fā)人員很有必要熟悉一下項(xiàng)目部署的流程,下面這篇文章主要給大家介紹了關(guān)于前端Vue項(xiàng)目部署到服務(wù)器的全過程以及踩坑記錄的相關(guān)資料,需要的朋友可以參考下2023-05-05
Vue?+?ElementUI表格內(nèi)實(shí)現(xiàn)圖片點(diǎn)擊放大效果的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了Vue?+?ElementUI表格內(nèi)實(shí)現(xiàn)圖片點(diǎn)擊放大效果的兩種實(shí)現(xiàn)方式,第一種使用el-popover彈出框來實(shí)現(xiàn)而第二種使用v-viewer插件實(shí)現(xiàn),需要的朋友可以參考下2024-08-08

