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 打包出错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现简单的select下拉框

    微信小程序实现简单的select下拉框

    这篇文章主要为大家详细介绍了微信小程序实现简单的select下拉框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • js 使FORM表单的所有元素不可编辑的示例代码

    js 使FORM表单的所有元素不可编辑的示例代码

    使FORM表单的的所有元素不可编辑的方法有很多,在本文将为大家详细介绍下,js是如何做到的,感兴趣的朋友不要错过
    2013-10-10
  • js防止表单重复提交实现代码

    js防止表单重复提交实现代码

    重复提交、重复刷新、防止后退等等都是属于系统为避免重复记录而需要解决的问题,在客户端去处理需要针对每一种的可能提出相应的解决方案,然而在服务器端看来只不过是对于数据真实性的检验问题
    2012-09-09
  • 用javascript添加控件自定义属性解析

    用javascript添加控件自定义属性解析

    这篇文章主要是对用javascript添加控件自定义属性进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • js enter键激发事件实例代码

    js enter键激发事件实例代码

    下面小编就为大家带来一篇js enter键激发事件实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 基于JavaScript实现微信抢红包功能

    基于JavaScript实现微信抢红包功能

    本文通过实例代码给大家介绍了基于JavaScript实现微信抢红包功能,金额随机,额度在0.01和(剩余平均值*2)之间,具体的实例代码大家参考下本文
    2017-07-07
  • 学习JavaScript一定要知道的3个小技巧

    学习JavaScript一定要知道的3个小技巧

    这篇文章主要给大家分享的是学习JavaScript一定要知道的3个小技巧,通常在 Angular 或 React 项目中,code review 时看到一些老式的 JavaScript 代码,就会将开发人员归类为初学者,下面我们就来一起看看初学者需要知道的三个小技巧,需要的朋友可以参考一下
    2021-12-12
  • JavaScript中的自定义事件举例详解

    JavaScript中的自定义事件举例详解

    在JavaScript中自定义事件的用法是前端开发中一个较为高级的话题,它允许开发者创建和触发自己的事件,从而达到更好的模块化和代码解耦,这篇文章主要介绍了JavaScript中自定义事件的相关资料,需要的朋友可以参考下
    2025-04-04
  • Js实现动态添加删除Table行示例

    Js实现动态添加删除Table行示例

    这篇文章主要介绍了Js动态添加删除Table行的具体实现,需要的朋友可以参考下
    2014-04-04
  • js实现鼠标悬停图片上时滚动文字说明的方法

    js实现鼠标悬停图片上时滚动文字说明的方法

    这篇文章主要介绍了js实现鼠标悬停图片上时滚动文字说明的方法,涉及js操作鼠标事件的使用技巧,需要的朋友可以参考下
    2015-02-02

最新评论