webpack中,css中打包背景图,路径报错

css-loader:

            //打包样式中背景图
            {
                test: /\.(png|jpg)$/,
                loader: "url-loader?limit=8192&name=images/[hash:8].[name].[ext]"
                //limit参数,代表如果小于大约4k则会自动帮你压缩成base64编码的图片,否则拷贝文件到生产目录
                //name后面是打包后的路径;
                //loader 后面 limit 字段代表图片打包限制,这个限制并不是说超过了就不能打包,而是指当图片大小小于限制时会自动转成 base64 码引用
                //上例中大于8192字节的图片正常打包,小于8192字节的图片以 base64 的方式引用。
            },

当小于8192,就打包成base64,那么,大于的就不做处理;

情景:我在main.css中背景图:

.page4-bg{
  background:url("../images/page4-bg.jpg") no-repeat center;
  background-size:cover;
}

结果:打包的时候,图片是在dist/images/文件夹下的,但是控制台中却是:

图片没有找到,于是我去查看路径:

貌似图片是加载进来了,好像没什么问题,接着在图片地址上鼠标右击---open in new tab,结果

而我文件图片的目录地址是

这样的,去掉路径中的css,就能够显示图片了

解决方案:

            //打包样式中背景图
            {
                test: /\.(png|jpg)$/,
                loader: "url-loader?limit=8192&name=images/[hash:8].[name].[ext]",
                options:{
                    publicPath:‘./images‘
                }
                //limit参数,代表如果小于大约4k则会自动帮你压缩成base64编码的图片,否则拷贝文件到生产目录
                //name后面是打包后的路径;
                //loader 后面 limit 字段代表图片打包限制,这个限制并不是说超过了就不能打包,而是指当图片大小小于限制时会自动转成 base64 码引用
                //上例中大于8192字节的图片正常打包,小于8192字节的图片以 base64 的方式引用。
            },

添加publicPath。

这个问题困扰了我一天,终于在第二天的下午找到了方法。

时间: 2024-07-30 23:47:11

webpack中,css中打包背景图,路径报错的相关文章

vue项目打包后css背景图路径不对的问题

问题描述: 自己在自学vue做项目的过程中,遇到一个有关背景图片路径的问题,就是css代码中背景图片是根据相对路径来写的,如下图: 当使用npm run dev命令本地访问的时候,背景图片是正常显示的,可使用npm run build命令打包后,访问dist目录下的项目,页面背景图路径就不对了,显示不出背景图.如下两张图对比 图一:使用npm run dev命令访问 图二:使用npm run build命令打包之后,访问dist目录下的文件,出现的问题,背景图片路径变成了http://127.0

webpack分离css单独打包

webpack分离css单独打包 字数285 阅读0 评论0 喜欢0 瞎扯 webpack 把所有的资源都当成了一个模块, CSS,Image, JS 字体文件 都是资源, 都可以打包到一个 bundle.js 文件中.但是有时候需要把样式 单独的打包成一个文件, 然后放到 CND上, 然后缓存到浏览器客户端中 这个操作很简单的,只需要一个插件就好了,就是extract-text-webpack-plugin 1. 安装extract-text-webpack-plugin npm instal

解决Ext4.2.3中propertyGrid修改后点击排序报错

Ext4.2.3中PropertyGrid修改后点击排序报错,具体错误信息如下: 一开始还怀疑是自己哪里配置错了,各种尝试结果还是一样.查遍百度和谷歌,无果,只有一篇帖子说是4.2.4修正了.还是自己动手吧,自己动手丰衣足食. 点开报错地方(如下图所示),原来是me.field.column没有定义. 然后继续找,找啊找啊找到Ext.grid.property.Grid的getCellEditor方法.此方法有参数column,可在方法体内,column就没有被用到过,于是就感觉问题出在这里.

VS Code中怎么解决 TSLint: " should be ' (quotemark) 报错问题?

VS Code配置typescript问题: VS Code中, user setting中将autoFixOnSave 设置为true. ref:https://github.com/praveenpuglia/angular-sanity/issues/4 VS Code中怎么解决 TSLint: " should be ' (quotemark) 报错问题? 原文地址:https://www.cnblogs.com/watermarks/p/9520949.html

Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'

学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html") bsObj = BeautifulSoup(html, "html.parser") print(bsObj.h1) 执行结果 Traceback

php中读取中文文件夹及文件报错

php读取时出现中文乱码 一般php输出中出现中文乱码我们可用 header ('content:text/html;charset="utf-8"'); php中读取中文文件夹及文件报错? 这就要用到iconv函数了 但php.5以下的版本好像要改php.ini这个配置文件 但我用的是php高版本所以可以直接用 iconv这个函数 用法: iconv('GB2312', 'UTF-8', $file); 但想要继续打开中文文件夹(二级中文目录),还是不行还是会报错, 我认为这应该是地

解决python中selen模块中'list' object has no attribute 'send_keys'报错

程序在执行如下代码的时候报错'list' object has no attribute 'send_keys' 解决: 把find_elements_by_id方法改成find_element_by_id 参考: https://stackoverflow.com/questions/29957373/selenium-python-send-key-error-list-object-has-no-attribute 解决python中selen模块中'list' object has no

IDEA中写MyBatis的xml配置文件编译报错的坑

IDEA中写MyBatis的xml配置文件编译报错的坑 说明:用IDEA编译工具在项目中使用Mybatis框架,编写mybatis-config.xml和Mapper.xml配置文件时,编译项目出现错误,错误提示为: xml中1字节的UTF-8序列的字节1无效 The cause of this is a file that is not UTF-8 is being parsed as UTF-8. It is likely that the parser is encountering a

pod导入融云路径报错解决办法

build Settings中搜索sear Search Patchs下点开Library Search Paths 将$(inherited)"$(SRCROOT)/Pods"分开来写 第一行$(inherited) 第二行"$(SRCROOT)/Pods" 这样可以解决路径报错的问题.希望对各位有所帮助

在把webpack作为本地开发依赖安装的时候报错

在把webpack作为本地开发依赖安装的时候报错 Refusing to install webpack as a dependency of itself 原因是package.json里的name的值为webpack,所以换个名字就好了