webpack打包出现图片不显示怎样解决?
发布时间:2021-12-30 15:38 所属栏目:13 来源:互联网
导读:webpack打包出现图片不显示怎样办?一些朋友有遇到webpack打包后,图片路径不错不显示图片的情况,那么这时我们该怎样解决呢?下面我们一起来了解看看。 在vue组件的style标签内部有如下一段使用背景图片的css代码 background-image: url(../assets/img/icon
webpack打包出现图片不显示怎样办?一些朋友有遇到webpack打包后,图片路径不错不显示图片的情况,那么这时我们该怎样解决呢?下面我们一起来了解看看。 在vue组件的style标签内部有如下一段使用背景图片的css代码 background-image: url("../assets/img/icon_add.png"); 在webpack中css-loader的解析配置如下 { test: /\.(css|less)$/, exclude: path.resolve(__dirname, 'node_modules'), use: ['style-loader', 'css-loader', 'less-loader'] } 打包后在dist目录的发现没有css文件。这是因为css文件被转化成了js文件。 此时启动项目,背景图片引入正确,能够正常显示。 2 将css文件提取到单独的文件目录 使用 mini-css-extract-plugin 将css文件单独提取到dist目录下的css目录下。 2.1 loader配置 { test: /\.(css|less)$/, exclude: path.resolve(__dirname, 'node_modules'), use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'] } 2.2 plugin配置 new MiniCssExtractPlugin({ filename: 'css/[name][contenthash].css', }) 打包后,dist目录结构如下 可以看到此时图片在根目录(dist)目录下,但是css文件处在dist/css/目录下。现在来看一下打包后的css文件是如何引用图片的路径。 3 解决方案 更改loader的配置如下 { loader: MiniCssExtractPlugin.loader, options: { // 当前的css所在的文件相对于打包后的根路径dist的相对路径 publicPath: '../' } }, 'css-loader', 'less-loader' 总结 分离css文件导致css背景图片路径错误,解决方案的核心是配置publicPath的值,publicPath的值是css文件所在的文件目录相对于根目录的相对路径值。 比如,根路径是/,css文件所在的目录是/css/,因此相对路径是.. (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读