日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

解决vue打包后静态资源路径错误的问题

發布時間:2023/12/10 vue 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决vue打包后静态资源路径错误的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vue項目完成的最后一步就是打包部署上線,但是打包部署的過程往往不是那么一帆風順的,現將遇到問題和解決方案記錄如下。

圖片路徑問題

起因:

頁面中引入資源的方式往往有如下幾種
* HTML標簽中直接引入圖片, 如 <img src="../assets/images/index.png">
* JS代碼中定義資源路徑屬性,如src: require('../assets/images/index.png')
* CSS代碼中定義資源為背景圖片,如background-image: url("../assets/images/indexpng")
上述三種資源加載方式還是有所區別的。
前兩種無論圖片大小,都會使用url-loader加載器將其轉化為base64編碼的靜態資源,而第三種方式則會根據webpack中配置的limit參數,動態選擇符合大小要求的圖片進行轉碼,此時則會導致不符合大小選擇的圖片加載失敗,同時報出如下錯誤。localhost:8080/dist/static/css/static/img/index.254207f.png

解決:

1.保證打包資源路徑可用,首先要做的是配置build.js執行時的資源參數,打開config目錄下的index.js
看代碼:

index: path.resolve(__dirname, '../dist/index.html'),assetsRoot: path.resolve(__dirname, '../dist'),assetsSubDirectory: 'static',assetsPublicPath: './', // 修改為'./'滿足資源相對路徑

2.保證資源轉碼條件符合。這塊主要涉及到加載用到的加載器url-loader, 需要保證其配置可執行。打開build目錄下的webpack.base.conf.js
看代碼:

{test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,loader: 'url-loader',options: {limit: 10000, // 該限制為小于10KB的圖片,系統默認轉碼為base64name: utils.assetsPath('img/[name].[hash:7].[ext]')} },

依賴資源路徑問題(字體、圖標)

起因:

系統采用vue + elementUI,但是發現打包之后的字體文件和圖標都不能正常顯示,報錯如下:

解決:

打開build目錄下utils.js,添加路徑配置 publicPath: '../../',
看代碼:

// Extract CSS when that option is specified // (which is the case during production build)if (options.extract) {return ExtractTextPlugin.extract({use: loaders,fallback: 'vue-style-loader',publicPath: '../../' // 解決element UI打包后字體文件丟失})} else {return ['vue-style-loader'].concat(loaders)} }

以上內容,全為個人拙見,如有錯誤,還望指正。

感謝博文:
https://blog.csdn.net/qq_38543537/article/details/90755830
https://segmentfault.com/q/1010000015012074

總結

以上是生活随笔為你收集整理的解决vue打包后静态资源路径错误的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。