Vue报错记录

博客主要讲述Vue开发中的常见报错及解决办法。包括css引入background报错,因vue版本和webpack配置问题,需更换写法;Vue和vue-template版本不匹配,要改成一致;npm install报错需清缓存重装;还提到特定错误及Vue路由子路由path不能加/的问题。

css引入中包含background时报错:

This relative module was not found:

* ./p_files/icon_taocan_select.png in ./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/ditubiaozhu/order/ok.vue?vue&type=style&index=0&id=3b11b65a&scoped=true&lang=css&

查阅资料后发现:
vue2.5及以下版本background-image: url('../assets/btn-bgc.png')这种写法没有问题,
但是2.6就会出现这个问题,和webpack配置相关 .vue2.6用的是webapack4.0导致
所以换一种写法就好background-image: url('~@/assets/btn-bgc.png')

webpack资源处理的规则

  • 分为相对路径,没有前缀的路径
  • 带~的路径,相对根目录的路径

1.相对路径: "./assets/logo_blue.png" 
2.没有前缀的路径 "assets/logo_blue.png" 被webpack解析为相对路径
3.带~的路径  "~@/assets/theme/logo_blue.png" 被webpack解析为 require(src/assets/theme/logo_blue.png) 动态引入 
@在webpack 被resolve.alias配置下等价于/src
4.相对根目录的路径 "/assets/logo_blue.png" webpack不解析

Vue和vue-template版本不匹配

Vue packages version mismatch:

- vue@2.7.16
- vue-template-compiler@2.5.16

This may cause things to work incorrectly. Make sure to use the same version for both.
If you are using vue-loader@>=10.0, simply update vue-template-compiler.
If you are using vue-loader@<10.0 or vueify, re-installing vue-loader/vueify should bump vue-template-compiler to the latest.
 

改成版本一致

npm i vue-template-compiler@2.7.16 --save

清缓存 再重新install

npm ERR! code EINTEGRITY
npm ERR! sha1-fx0TuPn/DBqZTcb3PGn31lLHrOI= integrity checksum failed when using sha1: wanted sha1-fx0TuPn/DBqZTcb3PGn31lLHrOI= but got sha1-mGmWgYtzeF5HsZZcw06wk6HUZNA=. (40173 bytes) 

解决:

删除package-lock.json

  • npm cache clean --force
  • npm install

install后重新生成package-lock.json

error:0308010C:digital envelope routines::unsupported

error:0308010C:digital envelope routines::unsupported-优快云博客

windows命令提示符:

脚本加入

set NODE_OPTIONS=--openssl-legacy-provider  &&

开发

Vue路由大坑,,,

子路由的path不需要加/,否则失效。。。

children: [
    {
        path:'article',
        component: () => import('@/page/Login'),

        }

### 解决Vue.js 文件上传错误 当处理文件上传时,常见的问题是由于事件绑定不正确或未正确配置表单数据引起的。为了确保文件上传功能正常运行,在创建文件上传组件时需注意几个关键点。 #### 绑定上传事件处理器 在实现文件上传功能时,应将上传表单绑定到一个上传事件处理器上。这通常通过监听`<input type="file">`元素上的`change`事件来完成[^2]: ```html <input type="file" @change="onFileChange"> ``` 此输入字段允许用户选择要上传的文件,并触发相应的事件处理函数。 #### 处理文件预览逻辑 一旦选择了文件,则会调用`showPreview`方法显示所选图片的小缩略图预览。该操作不仅提高了用户体验,还提供了一种验证机制以确认即将上传的内容无误: ```javascript methods: { onFileChange(event) { const file = event.target.files[0]; if (file) { this.file = file; let reader = new FileReader(); reader.onloadend = () => { this.imageDataUrl = reader.result; // 将图像转换为base64编码字符串并存储起来用于展示 }; reader.readAsDataURL(file); } }, } ``` #### 配置FormData对象发送请求 为了让服务器能够接收到来自客户端提交的数据包,应该使用JavaScript内置的对象——`FormData`来封装待传输的信息。这样可以简化多部分形式数据(multipart/form-data)的构建过程[^1]: ```javascript uploadImage() { var formData = new FormData(); formData.append('image', this.file); axios.post('/api/upload', formData, { headers: {'Content-Type': 'multipart/form-data' } }).then(response => console.log(response)) .catch(error => console.error(error)); } ``` 上述代码片段展示了如何利用Axios库发起POST请求并将文件作为参数传递给后端接口。需要注意的是设置正确的HTTP头信息以便告知服务器预期接收到的数据格式是什么样的。 #### 调试常见问题排查指南 如果仍然遇到无法解析的具体错误消息,建议按照以下步骤逐一排除潜在原因: - 检查浏览器控制台中的网络活动记录,查看是否有任何异常响应状态码返回; - 确认目标URL路径拼写准确无误且指向有效的API终结点; - 测试不同类型的文件是否都能成功上传,从而判断是否存在特定于某些扩展名的支持缺失情况; 通过遵循以上指导原则,大多数情况下都可以有效地定位并修复Vue.js项目中存在的文件上传相关的问题。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值