webpack 打包后图片加载报错的解决办法

 更新时间:2024年03月06日 11:29:27   作者:佩淇呢  
使用webpack打包后,图片没有加载出来,页面空白,报错图片引用的路径不对,本文给大家介绍webpack 打包后图片加载报错的解决办法,感兴趣的朋友一起看看吧

使用webpack打包后,图片没有加载出来,页面空白,报错图片引用的路径不对

解决办法:

1.找到config->index.js

将 assetsPublicPath: '/', 改为 assetsPublicPath: './' 

build: {
    index: path.resolve(__dirname, '../dist/index.html'),
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',       // 改为 assetsPublicPath: './'
    ……
}

2.build->utils.js

找到下面这个函数的代码。

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

代码里添加 publicPath:'../../' 

 function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }
    // 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:'../../'     // 添加 publicPath:'../../' 
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

有的问题使用第一种办法就可以解决,我有些图片放在全局,全局的图片没有打包出来,添加了第二种解决办法,图片解决了。

补充:

webpack 打包图片文件

一、准备工作

       1. 在src文件夹中新建一个img文件夹,并且在里面放两张图片;  

        2.在css文件中引用图片,从而让webpack能够知道这个图片也是要打包的;         

二、  使用url-loader和file-loader

        能打包图片的loader有url-loaderfile-loader;二者的区别在于当图片的大小>url-loader中的limit时,那么webpack会选择使用file-loader来打包。关于如何在webpack中文官网找到loader并且如何使用请看我的其他文章。

        1. 接下来看一下详细的url-loader配置:       

        重点放在options中的limitname, limit的作用就是当要打包的图片大小>limit设置的值时,会使用file-loader进行打包。name的作用是对打包生成的图片文件进行命名规约;我来详细解释一下: img/的作用是在dist目录下会新建一个img文件夹用于存放图片;[name]是使用图片原本的名称;[hash:8]是通过哈希函数将图片的名字进行计算,然后取前8位;[ext]就是图片文件本身的后缀名。[name].[hash:8].[ext]就是用来生成文件名的,所以打包后图片最终的效果就是这样了:       

       注意点1:那就是这个name它是使用file-loader打包才会有的效果哦,如果是url-loader进行打包,那么打包好的图片不会按照name的规则来生成,这个要注意一下。

      注意点2: 因为打包好的图片输出位置是在dist文件夹中,所以还需要一个配置:publicPath='dist/'      

      老实说我还没有办法说清楚它,但是加上去才能成功打包,所以先加上,等我后面知晓了它的作用我会补上它的作用的。

到此这篇关于webpack 打包后图片加载报错的解决办法的文章就介绍到这了,更多相关webpack 打包出错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript 性能提升之路(推荐)

    JavaScript 性能提升之路(推荐)

    这篇文章主要介绍了JavaScript性能提升,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • JavaScript对象属性遍历的6种常用方法详解与对比

    JavaScript对象属性遍历的6种常用方法详解与对比

    在 JavaScript 中,对象(Object)作为核心数据类型之一,存储着大量的键值对数据,本文将和大家介绍一下JavaScript对象属性遍历的6种常用方法,希望对大家有所帮助
    2026-01-01
  • webpack-dev-server的安装使用教程

    webpack-dev-server的安装使用教程

    这篇文章主要介绍了webpack-dev-server的安装使用教程,大家有个前提条件要清楚webpack-dev-server依赖webpack,我们需要先安装webpack,本文结合实例代码详细讲解,需要的朋友可以参考下
    2023-02-02
  • javascript将扁平的数据转为树形结构的高效率算法

    javascript将扁平的数据转为树形结构的高效率算法

    这篇文章主要介绍了javascript将扁平的数据转为树形结构的高效率算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 前端printjs的使用实战案例

    前端printjs的使用实战案例

    Print.js是一个小的javascript库,可帮助您从网络上打印,这篇文章主要给大家介绍了关于前端printjs的使用实战案例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 求js数组的最大值和最小值的四种方法

    求js数组的最大值和最小值的四种方法

    本篇文章主要介绍了求js数组的最大值和最小值的四种方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 让iframe自适应高度(支持XHTML,支持FF)

    让iframe自适应高度(支持XHTML,支持FF)

    让iframe自适应高度(支持XHTML,支持FF)...
    2007-07-07
  • 一步步教你利用Canvas对图片进行处理

    一步步教你利用Canvas对图片进行处理

    这篇文章主要给大家介绍了关于利用Canvas对图片进行处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • 浅析java线程中断的办法

    浅析java线程中断的办法

    这篇文章给大家分享了java线程中断的办法以及相关知识点内容,有需要的朋友们可以学习参考下。
    2018-07-07
  • Js获取图片原始宽高的实现代码

    Js获取图片原始宽高的实现代码

    下面小编就为大家带来一篇Js获取图片原始宽高的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05

最新评论