欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

webpack配置打包后圖片路徑出錯的解決

 更新時間:2018年04月26日 13:53:29   作者:我來自伯納烏  
本篇文章主要介紹了webpack配置打包后圖片路徑出錯的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

問題

項目在開發(fā)環(huán)境下工作正常,當打包后圖片不見了,檢查元素后發(fā)現(xiàn)路徑出錯了。

圖片路徑是這樣:background: url(/static/img/bg_camera_tip.bd37151.png),但該路徑下文件并不存在。

打包后文件目錄如下:


可以看到背景圖片的路徑應(yīng)該是../../static而實際卻是/static,找到原因后就好解決了

方法一

查看build目錄下webpack.base.conf.js的配置,圖片文件會經(jīng)過url-loader處理。

 module: {
  rules: [
   ...
   {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
     limit: 10000,
     name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
   },
   ...
  ]
 }

它的作用是當文件大小小于limit限制時會返回一個base64串,其實就是把圖片資源編碼為base64串放在CSS文件里,這樣就可以減少一次網(wǎng)絡(luò)請求,因為每一張圖片都是需要從服務(wù)端去下載的。但是如果文件太大了就會導(dǎo)致base64串很長,那放在CSS文件里面就會導(dǎo)致文件很大,CSS的文件下載時間變長,就得不償失了,所以會有一個limit參數(shù),在這個范圍內(nèi)的才會被轉(zhuǎn)成base64串,它的單位是字節(jié)。對于這個問題,該loader還提供了一個publicPath參數(shù),目的是修改引用的圖片地址,默認是當前路徑,那直接改它就可以了,即在options節(jié)點下添加一個參數(shù)publicPath: '../../'。

 module: {
  rules: [
   ...
   {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
     limit: 10000,
     publicPath: '../../', //你實際項目的引用地址前綴
     name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
   },
   ...
  ]
 }

方法二

webpack.base.conf.js里還有一條規(guī)則,每一個vue文件都會經(jīng)過vueLoaderConfig處理

 module: {
  rules: [
   {
    test: /\.vue$/,
    loader: 'vue-loader',
    options: vueLoaderConfig
   },
   ...
  ]
 }

vueLoaderConfig位于build/vue-loader.conf.js,它又調(diào)用了build/utils.js的cssLoaders的方法。

  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  }

如果是生產(chǎn)環(huán)境options.extract值為true,會調(diào)用這個ExtractTextPlugin插件做處理,它的作用是抽離項目中引用的樣式文件到一個獨立的CSS文件中,這樣就可以一次加載所有的CSS文件,相當于CSS文件并行加載,可以減少網(wǎng)絡(luò)請求次數(shù),更多優(yōu)點及使用可以查看ExtractTextWebpackPlugin?;氐竭@個問題,它還有一個參數(shù)就是publicPath,可以覆蓋所指定的loader的publicPath配置,那么就跟前面的配置一樣,可以給所有的loader統(tǒng)一配置引用文件的路徑地址。

另外這里的user:loader實際上是返回一系列的loader的集合,cssLoaders的返回是

 return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', { indentedSyntax: true }),
  scss: generateLoaders('sass'),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }

這也就是即便你沒有在webpack.base.conf.js中配置sass-loader也能使用SASS語法的原因。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript 數(shù)組(list)添加/刪除的實現(xiàn)

    javascript 數(shù)組(list)添加/刪除的實現(xiàn)

    這篇文章主要介紹了javascript 數(shù)組(list)添加/刪除,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • js精度溢出解決方案

    js精度溢出解決方案

    一般參數(shù)值不能超過16位。如果超出16都是用0替代,導(dǎo)致我們查詢不到自己想要的結(jié)果,本文將介紹如何處理這種現(xiàn)象
    2012-12-12
  • 分享JavaScript的?3?種工廠模式的用法

    分享JavaScript的?3?種工廠模式的用法

    這篇文章主要分享JavaScript的?3?種工廠模式,工廠模式是設(shè)計模式中最常用的設(shè)計模式之一,這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,下文關(guān)于工廠模式的更多相關(guān)資料需要的小伙伴可以參考一下
    2022-04-04
  • Typescript使用修飾器混合方法到類的實例

    Typescript使用修飾器混合方法到類的實例

    這篇文章主要介紹了Typescript使用修飾器混合方法到類的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • JS解決ie6下png透明的方法實例

    JS解決ie6下png透明的方法實例

    解決ie6下png透明的問題想必前端都比較清楚,雖然有很多方法,但是我覺得用JS還是最省事的方法,不管是圖片還是背景圖片都OK。
    2013-08-08
  • JS面向?qū)ο缶幊獭狤S6 中class的繼承用法詳解

    JS面向?qū)ο缶幊獭狤S6 中class的繼承用法詳解

    這篇文章主要介紹了JS面向?qū)ο缶幊獭狤S6 中class的繼承用法,結(jié)合實例形式詳細分析了ES6中class繼承的相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2020-03-03
  • 微信小程序下拉框功能的實例代碼

    微信小程序下拉框功能的實例代碼

    這篇文章主要介紹了微信小程序下拉框功能的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • JavaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))

    JavaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))

    下面小編就為大家?guī)硪黄狫avaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 讓微信小程序支持ES6中Promise特性的方法詳解

    讓微信小程序支持ES6中Promise特性的方法詳解

    微信更新自家的Web開發(fā)工具后無法使用原生 Promise,下面這篇教程教你引入第三方庫來使用 Promise,文中通過圖文介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • JavaScript提升機制Hoisting詳解

    JavaScript提升機制Hoisting詳解

    這篇文章主要介紹了JavaScript提升機制Hoisting詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10

最新評論