webpack 背景图路径错误导致图片出不来

自己学习webpack的时候,打包之后,发现 img标签中的src图片能够现实出来,但是css中的背景图不能显示出来???

解决:配置url-loader

              {
                    test:/\.(gif|png|jpg)\??.*$/,
                    use:{
                        loader:"url-loader",
                        options:{
                            limit: 1024,
                            name:"[name].[ext]",
                            outputPath:"assets/image",  //会将图片资源都打包到 
                                                          dist/assets/images/下
                            publicPath: '../../assets/image'
                        },
                    }
                },

如图: url-loader中用正则匹配图片后,options参数中配置跟路径有关的两个选项 outputpath 和 publicPath

webpack 背景图路径错误导致图片出不来_第1张图片

这两个长的很像,

其中,

outputpath : 主要是针对生成的图片路径  

                    比如,开发时,图片路径都是在src/assets/images 下, 如果不加 outputpath ,打包时就会把图片都打包在dist目录

下 ,而不是 dist/assets/images/XXX.png 这种路径下了。

所以,ouputpath是跟生成的图片路径有关。

 

publicPath :  这个则是生成的页面中对图片路径的引用时,加上publicPath。

 

如上案例, 如果不加上这个参数,背景图生成的路径会变得很糟糕。不按自己的预期进行

webpack 背景图路径错误导致图片出不来_第2张图片

多了个assets的目录, 然后图片没有出来。

这个时候在浏览器输入生成的图片路径 (http://localhost:8080/assets/image/contact.png)是ok的,图片有出来。

 

html中的img标签的中图片资源引用也是错的~

加上 publicPath ,让文件引用直接使用publicPath+资源名~,这时图片路径就正确啦~~

你可能感兴趣的:(webpack)