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

 更新时间:2024年03月06日 11:29:27   作者:佩淇呢  
使用webpack打包后,图片没有加载出来,页面空白,报错图片引用的路径不对,本文给大家介绍webpack?打包后图片加载报错的解决办法,感兴趣的朋友一起看看吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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

相关文章

  • ie8本地图片上传预览示例代码

    ie8本地图片上传预览示例代码

    ie8本地图片上传预览出现问题是因为限制浏览器造访本地文件,所以用到滤镜和div,下面有个不错的示例,希望对大家有所帮助
    2014-01-01
  • 解读CocosCreator源码之引擎启动与主循环

    解读CocosCreator源码之引擎启动与主循环

    这篇文章主要介绍了CocosCreator源码解读之引擎启动与主循环,对CocosCreator感兴趣的同学,可以研究参考一下
    2021-04-04
  • JavaScript实现拼图式滑块验证功能

    JavaScript实现拼图式滑块验证功能

    滑块验证码是在网站、APP等应用中常见的一种验证方式,通过按照一定规则滑动滑块到指定位置完成验证,才可以进行下一步操作,本文给大家分享基于JavaScript实现拼图式滑块验证功能,感兴趣的朋友一起看看吧
    2022-06-06
  • JavaScript实现点击按钮就复制当前网址

    JavaScript实现点击按钮就复制当前网址

    在大量的网站都有这样的功能,当点击一个按钮的时候可以复制当前页面的地址,以此可以方便网站用户对链接的存储,同时也便于网站的推广,下面给大家分享具体实现代码,对js实现点击按钮就复制的相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • JS中判断null、undefined与NaN的方法

    JS中判断null、undefined与NaN的方法

    这篇文章主要介绍了JS中判断null、undefined与NaN的方法,需要的朋友可以参考下
    2014-03-03
  • Function.prototype.bind用法示例

    Function.prototype.bind用法示例

    想必大家对Function.prototype.bind并不陌生吧,下面为大家介绍下它的简单调用及DOM调用,感兴趣的朋友可以参考下
    2013-09-09
  • webuploader实现上传图片到服务器功能

    webuploader实现上传图片到服务器功能

    这篇文章主要为大家详细介绍了webuploader实现上传图片到服务器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • JavaScript eval() 函数介绍及应用示例

    JavaScript eval() 函数介绍及应用示例

    eval(String) 函数可计算某个字符串,并执行其中的的 JavaScript 代码,该方法只接受原始字符串作为参数
    2014-07-07
  • JSONP跨域模拟百度搜索

    JSONP跨域模拟百度搜索

    这篇文章主要介绍了JSONP跨域模拟百度搜索,JSONP是JSON?with?padding?的简写,应用JSON的一种新方法,在后来的Web服务中非常流行,JSONP看起来与JSON差不多,只不过是被包含在函数中调用的JSON,对此感兴趣的小伙伴可以参考一下下面文章内容
    2021-12-12
  • 详解JavaScript如何有效取消HTTP请求

    详解JavaScript如何有效取消HTTP请求

    在Web开发中,取消HTTP请求是一项关键任务,所以本文为大家介绍了如何使用XMLHttpRequest、Fetch和Axios这三种常用的HTTP请求方式来实现取消请求的功能,需要的可以参考下
    2023-09-09

最新评论

?


http://www.vxiaotou.com