我在Sentry中收到很多错误报告,显示“ReferenceError: jQuery未定义”,但与页面总加载次数相比,这种错误出现得相对较少。
<script src="/js/compiled/jquery.min-2fe08f7.js" defer></script>
<script src="/js/my-script-e6f35a4.js" defer></script>
我的脚本文件my-script.js大致如下:
(function($) {
$('h1').text('Hello world');
})(jQuery);
但是从Sentry报告中我并不清楚为什么jQuery没有被加载。
Sentry面包屑提供的线索非常无用:
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:26 exception ReferenceError: jQuery is not defined
延迟加载的脚本应按照它们在文档中出现的顺序进行加载,因此我认为问题不在于异步加载。也许jQuery文件在某些慢速设备上加载超时了?或者服务器上的文件在某些时刻无法访问?我在各种JS文件以及各种依赖项中都遇到过这种情况,不仅仅是jQuery。是否有人能建议我如何正确解决这个问题,或者至少将完整的控制台输出发送到Sentry,包括对JS文件等资源的失败HTTP子请求,以找出实际原因是什么?提前致谢。