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

作者:mugbya 时间:2023-11-13 14:51:08 

环境 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;
}
标签:django,延时加载
0
投稿

猜你喜欢

  • Python实现线程状态监测简单示例

    2023-12-07 20:31:25
  • SQL Server数据表压缩

    2024-01-25 21:47:12
  • JSP实现客户信息管理系统

    2023-06-30 05:32:36
  • Django如何开发简单的查询接口详解

    2022-07-06 11:27:57
  • SQL语句的执行原理分析

    2024-01-15 03:17:59
  • Mysql优化策略(推荐)

    2024-01-19 15:18:34
  • keras回调函数的使用

    2022-08-22 11:42:41
  • django请求返回不同的类型图片json,xml,html的实例

    2021-05-17 10:03:23
  • W3C优质网页小贴士(三)

    2008-04-09 13:32:00
  • 使用OpenCV实现仿射变换—平移功能

    2022-11-01 01:45:06
  • python中requests和https使用简单示例

    2021-03-16 16:14:35
  • 网站制作流程及界面交互设计

    2007-10-26 12:00:00
  • django将图片保存到mysql数据库并展示在前端页面的实现

    2024-01-26 06:59:44
  • 详细讲解PostgreSQL中的全文搜索的用法

    2024-01-28 13:55:29
  • 如何通过Python3和ssl实现加密通信功能

    2022-04-28 05:55:30
  • 如何用表单的方式推送请求的信息?

    2010-06-16 09:47:00
  • python生成以及打开json、csv和txt文件的实例

    2023-08-05 10:44:49
  • PyTorch学习笔记之回归实战

    2023-09-17 10:26:19
  • 原生JS实现几个常用DOM操作API实例

    2024-04-25 13:09:27
  • 关于Python中的同步异步阻塞与非阻塞

    2021-09-03 05:54:01
  • asp之家 网络编程 m.aspxhome.com