前端+后端常见问题及解决方案
前端发生的问题
问题:import zhCn from 'element-plus/dist/locale/zh-cn.mjs' 找不到文件
解决办法:
于vite-env.d.ts声明该模块存在且类型安全,避免编译报错
Declare module ‘element-plus/dist/locale/zh-cn.mjs’
替代方案:使用带类型提示的语言包路径
Import zhCn from ‘element-plus/es/locale/lang/zh-cn’
此方式无需手动声明模块,且支持代码提示
问题:tsconfig.app.json中extends字段引用路径无效导致运行失败
解决办法:可以直接删除extends字段或替换为项目本地配置
问题:打包后的静态资源无法服务器访问
解决办法:在vite.config.ts文件中配置base:’./’,该配置指定了项目的静态资源加载路径,
指定后项目部署后会在当前文件夹下寻找assets文件夹获取静态资源
问题:页面始终卡在登录界面无法跳转
解决办法:app.vue中设置了超时点击事件,若没有重置登录时间,会导致每次点击都判定
是超时,则每次都会跳转到登录界面,故在点击登录和修改密码之前重置登录时间
django后端问题
问题:对用户分组后无效,用户正常实现对分组外表的增删改查,对登陆用户调用权限验证发现用户所属组为空,所属权限也全为空
分析:经过排查,发现所有用户type都为<class 'django.contrib.auth.models.AnonymousUser'>,均为匿名用户,原因是前端请求拦截器加的jwt验证请求头丢失,导致后续访问都无jwt验证,判定所有用户为匿名用户
解决办法:更改前端拦截器中加请求头的代码为config.headers.Authorization = 'Bearer '+localStorage.getItem('Authorization');确保请求头包含token
问题:发现切换登陆用户无效,用户正常使用已禁用的权限,实际用户均为admin用户
分析:在login.vue登陆时,会获取本地localStorage存储的Authorization即jwt token和上次更新token的时间,判定该时间超时则重新刷新token,未超时则继续使用该token进行后续业务逻辑使用,而切换用户后如果本地token未超时,则继续使用,该token为上一用户的token,导致django验证该用户为上一用户,会以上一用户的所有权限和组进行操作
解决办法:每次登陆使用新的token存储在本地,退出登陆时清空本地token
更多推荐



所有评论(0)