django使用图片延时加载引起后台404错误


Posted in Python onApril 18, 2017

环境 django 1.10.6

缘起

今天接到一个任务——解决终端满屏日志中的无用错误。 django 会尽可能给你准确报出错误位置,但是一些复杂,深层次的错误它自带的错误日志有些不足了,日志多但是却无效。

过程

对于后台日志太多而无用,我则直接转到浏览器查看控制台访问情况,得到如下提示

django使用图片延时加载引起后台404错误

直接去后台匹配这个错误:undefined。根据这个错误完全定位不到具体哪儿出了问题。我调试跟踪发现进入到一个特定的页面会一定出现这个问题,而如果换一个页面则不出现错误。 得此,我进而对这个页面进行跟踪,我尝试替换页面的做法,最终定位到一段 html 代码就会引起该错误:

<img src="/static/msite/image/qrcode_for_gh.jpg">

我很诧异一个img标签会引起后端访问一个错误的地址,但是却完全不知道原因。 我尝试替换这个img的src,结果依然还是相同错误。

在用firebug调试下发现问题,上图:

django使用图片延时加载引起后台404错误

根据调用堆栈的提示,去追寻相关js如下图

django使用图片延时加载引起后台404错误

最终才知道这个图片地址被惰性加载了,然后在惰性加载后,img的src变成 undefined引发后端访问一个不存在的地址。

解决

在使用前,处理一下 src 值

function imageLoaded(obj, src) {
 var img = new Image();
 if(src===undefined){
  src='';
 }
 img.onload = function() {
  obj.src = src;
 };
 img.src = src;
}
Python 相关文章推荐
python实现数通设备端口监控示例
Apr 02 Python
Python中decorator使用实例
Apr 14 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
Python异常处理知识点总结
Feb 18 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
学习和使用python的13个理由
Jul 30 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python每天定时运行某程序代码
Aug 16 Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 Python
python如何做代码性能分析
Apr 26 Python
使用Python3制作TCP端口扫描器
Apr 17 #Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 #Python
Python的时间模块datetime详解
Apr 17 #Python
Python中标准模块importlib详解
Apr 16 #Python
Python 实现随机数详解及实例代码
Apr 15 #Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 #Python
Python生成随机数组的方法小结
Apr 15 #Python
You might like
PHP令牌 Token改进版
2008/07/18 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
js+html制作简单验证码
2017/02/16 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
手机配件第一品牌:ZAGG
2017/05/28 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
校园餐饮创业计划书
2014/01/10 职场文书
党员干部承诺书
2014/03/25 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
天猫活动策划方案
2014/08/21 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2014年工程部工作总结
2014/11/25 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
项目建议书
2015/02/04 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
高中信息技术教学反思
2016/02/16 职场文书