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实现的重启关机程序实例
Aug 21 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
基于Python的关键字监控及告警
Jul 06 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
tensorflow实现逻辑回归模型
Sep 08 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
python交易记录链的实现过程详解
Jul 03 Python
python防止随意修改类属性的实现方法
Aug 21 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
pytorch 修改预训练model实例
Jan 18 Python
如何使用python切换hosts文件
Apr 29 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使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
jquery批量控制form禁用的代码
2013/08/06 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
angular.bind使用心得
2015/10/26 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python的dict判断key是否存在的方法
2020/12/09 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
英国领先的游戏零售商:GAME
2019/09/24 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
班组长安全生产职责
2013/12/16 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
个人作风剖析材料
2014/02/02 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
2015年见习期工作总结
2014/12/12 职场文书
婚宴邀请函
2015/01/30 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
校车司机安全责任书
2015/05/11 职场文书
PHP策略模式写法
2021/04/01 PHP
python爬虫框架feapde的使用简介
2021/04/20 Python