【项目问题定位】前端请求不到资源报错ERR_CONTENT_LENGTH_MISMATCH的解决

news2025/7/5 23:08:48

文章目录

      • 问题简述
      • 问题背景
      • 问题定位
        • 初始报错定位
        • 好像是网络问题
        • `ERR_CONTENT_LENGTH_MISMATCH 200` 是什么原因?
        • 原来是`Nginx`报错了
        • 为何没有权限?
        • `nobody`的原因
        • 问题解决
      • 原因总结
      • 知识点

问题简述

前端页面加载资源时,出现ERR_CONTENT_LENGTH_MISMATCH的报错情况。

问题背景

从昨天下午开始,我上测试环境测试就开始发现会偶发如下问题:

  • 1.打开主页面速度很慢
  • 2.客户查询界面样式丢失,像是没有请求到css文件
  • 3.界面打开后,图表界面不显示任何图表

问其他小伙伴是否有遇到类似问题,都说没有问题。
难道是我人品有问题?因为有其他事要忙,索性先不管了。
今天早上,测试姐姐说他那边也遇到了我昨天说的问题。那看来不是我人品问题。

问题定位

初始报错定位

  1. 打开开发者工具,控制台报错是 require echarts.js error. 第一反应是缺失了这个第三方的echart。
    此时另一个小伙伴说他没有问题。但我觉得可能是他本地有缓存的缘故,让他清下缓存再看看。清完后果然问题复现了。
    然后先去看了下页面引入echarts.js的地方
    在这里插入图片描述
    去服务器上查看,echarts.js并没有缺失。就很奇怪!
    在这里插入图片描述

好像是网络问题

  1. 又猜想难道,是因为引入的不是压缩的JS,文件太大,而网络不好,导致加载资源失败?
    为了验证我的猜想,我将代码改成了引入echarts.min.js
    在这里插入图片描述
    清缓存重新进入测试环境,发现ok了。看来的确是因为echarts.js过大导致加载失败?
    但是之前一直是ok的。。再说了除了这个问题,第一个问题和第二个问题还是会出现。

ERR_CONTENT_LENGTH_MISMATCH 200 是什么原因?

  1. 当我再次清除缓存刷新界面时,第一个主页面始终打不开的问题又出现了。此时去查看控制台报错如下:
    在这里插入图片描述
    ERR_CONTENT_LENGTH_MISMATCH 200
    这个报错百度了一下,原因有很多,比如磁盘满了、Nginx的问题等等。

原来是Nginx报错了

于是先问了大家最近是否有对环境nginx做变更?
了解到的确昨天修改了Nginx的配置文件,所以取了一下Nginx的error.log,如下:
在这里插入图片描述
日志的报错提示很明显,Permission denied,Nginx在访问临时目录/usr/local/nginx/proxy_temp下文件时没有权限导致访问失败。

为何没有权限?

先查看下该临时目录的所有者,是nobody,而Ngnix的使用者是zoms
在这里插入图片描述
所以先试着使用chown命令修改所有者为zoms -R zoms:zoms ./proxy_temp
然后重启,重启后还是报Permission denied。重新查看权限,居然又变回了nobody

nobody的原因

为何修改权限并重启后,所有者又回变成nobody
找到了一个大佬的解释:
在这里插入图片描述
虽然我们并没有nginx -t,但是给了我一点启发。
我们是用root用户进来并修改配置文件的,然后用root重启的,然而root并不是Ngnix的所有者,所以重启后就强行修改了临时目录的权限!
在这里插入图片描述

问题解决

此时我们先停掉Ngnix,并用Ngnix的所有者zoms进入,修改临时目录权限为zoms,然后再用zooms重启Ngnix
重启好后,再进入测试环境,这时候就很快了,问题1,2,3都没有再出现了!

原因总结

所以根本原因是,Nginx的所有者是zooms,但是昨天用root用户去修改配置并重启了,重启后导致/usr/local/nginx/proxy_temp 的所有者变为了nobody
这时候Nginx在尝试访问/usr/local/nginx/proxy_temp下文件时,因为没有权限,导致了请求失败,进而导致了前端不能正确访问资源的问题ERR_CONTENT_LENGTH_MISMATCH
至于nginx为何要访问临时目录而不是直接去主机上加载,原因是访问的资源过大的话,Nginx会优先从缓存加载。

知识点

1.Nginx访问资源时,如果资源过大,会优先从缓存目录加载。
2.非Nginx所有者 重启Ngnix后会强制将临时目录所有者修改为nobody。所以一定要用Ngnix所有者去重启Ngnix
3.对于使用负载均衡的项目,如何定位访问不到资源的问题处于Ngnix
可以绕过Ngnix,直接访问目标主机上的资源,如果能快速访问到,那就说明服务器没问题,只能是因为Ngnix的某些问题导致访问失败了。进而可以查看Ngnixerror.log,进一步明确原因。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/407806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端异常:“Uncaught SyntaxError: missing ) after argument list“真的只是参数列表后面缺少 “)”?

案发现场 我们在写JS的时候,有时候报错"Uncaught SyntaxError: missing ) after argument list",字面翻译过来的意思:语法错误: 参数列表后面缺少 )。 这真的就是缺少括号的意思吗?然而只是真的缺少括号才会出现这样的…

HTML的常见标签及用法

一、注释标签 形如&#xff1a;<!-- -->的格式就叫做注释标签&#xff0c;在代码中起到解释说明的作用。 二、标题标签 在HTML中有六种格式的标题标签类型&#xff0c;分别是h1,h2,h3,h4,h5,h6。对应的形式为&#xff1a; 三、段落标签 当文章需要分段时&#xff0c;使…

js除法取整(js除法向上取整)

Javascript取整问题。要求只要有小数存在就进一位。例如&#xff1a;2.1取3&#xff0c;3.1取4 var a 2.0; function parseNumber(number, splitChar) { var n number ; var s splitChar nullvar a 2.1; var b parseInt(a) 1; // b will be 3 parseInt是截掉尾数&#…

vxe-table表格合并单元格和编辑

//这是在vue上面引用vxe-table插件实现的&#xff0c;主要方法都设置在table中&#xff0c;mergeCells&#xff0c;tableData都是在vue页面的data初使化数据&#xff0c; :footer-method“footerMethod”&#xff1a;尾部数据&#xff0c;:merge-footer-items“mergeCells”&am…

vue通过url方式展示PDF方法总结

最近vue项目中遇到预览pdf出现乱码问题&#xff0c;尝试了各种办法受尽折磨&#xff0c;以此记录一下使用的几种方法 1.使用pdfjs-dist 插件&#xff0c;通过iframe标签显示 首先 npm install pdfjs-dist --save npm直接下载插件 npm install --save pdfjs-dist2.0.943&…

【vue 项目】有关cascader任选一级、字段名不同、同时获取value和label值、回显(推父节点)等问题解决

文章目录选择任意一级选项字段名转换最后一级数据为空显示暂无数据问题同时获取cascader的value和label值选择时双击两次才显示被选中&#xff08;单选选择任意一级组件&#xff09;Error in callback for watcher “options“: “TypeError: Cannot read property ‘level‘ o…

表单元素盘点第二弹<form><textarea>元素详细介绍

博主有话说&#xff1a;如果有描述错误之处请大家纠正。让我们可以一起学习一起进步。 个人主页&#xff1a;GUIDM主页 内容专栏&#xff1a;干货 此块内容为纯纯的干货&#xff0c;略显乏味枯燥&#xff0c;是笔记向的blog。如果觉得还不错&#xff0c;希望你可以一键三连&…

Vue2的响应式原理

--------Vue2响应式原理---------- 原理&#xff1a;通过数据劫持 defineProperty 发布订阅者模式&#xff0c;当 vue 实例初始化后 observer 会针对实例中的 data 中的每一个属性进行劫持并通过 defineProperty() 设置值后在 get() 中向发布者添加该属性的订阅者&#xff0c…

基于RuoYi若依vue的数据分页功能的前后端代码详解

目录 1.前端代码 1.1首先在前端会有一个 组件&#xff0c;为分页组件 1.2前端获取列表函数以及访问后端的URL与请求方式 1.3开发者工具查看前端访问后端信息 1.4开发者工具查看前端接收到后端的回应信息 2.后端代码 2.1接口 2.2接口内方法的代码 2.3后端Log输出如下 1.前…

IntersectionObserver API详解

过去&#xff0c;要检测一个元素是否可见或者两个元素是否相交并不容易&#xff0c;比如实现图片懒加载、内容无限滚动等功能时&#xff0c;都需要通过​getBoundingClientRect()​写大量的逻辑计算或者依靠scroll事件监听等性能很差方式来实现。 现在&#xff0c;依靠Interse…

Object.prototype.toString.call()的原理

今天在项目中看到了用Object.prototype.toString.call()这个方法封装的检测数据类型的工具。 但是浏览器搜索相关原理的好回答凤毛麟角&#xff0c;故而想记录一下&#xff0c;万一可以帮助到更多的新手呢&#xff1f;我的文章都是非常通俗易懂的&#xff0c;因为我写文章的时…

HTML页面知识点小总结(巨详细)

HTML基础知识点总结 文章目录HTML基础知识点总结一、 HTML页面主要的三大标签。二、 外部的CSS文件。三、外部的JavaScript文件。四、< body >标签中存放的内容。如果觉得写的不错的话点个赞支持鼓励一下吧&#xff0c;欢迎交流&#xff0c;谢谢啦~~~一、 HTML页面主要的…

前端知识点汇总

HTML介绍 HTML: Hyper Text Markup Language 超文本标记语言&#xff0c;用来做网页. 负责网页的框架结构布局.1993年 html 1.0 Tim Berners-Lee(蒂姆-博纳斯-李)&#xff0c;万维网之父1995年 html 2.0 IETF(互联网工程小组)1997年1月 html 3.2 W3C(万维网联盟)1997年12月 ht…

vue2:elementUI中Form 表单在特定情况下做动态rules添加删除

先看需求&#xff1a;&#xff08;不想看的直接拉到最后&#xff09; 【需求说明】 6、如状态为上架时&#xff0c;库存为必填&#xff0c;下架状态时&#xff0c;库存为可填&#xff0c;前面无星号 实现方法&#xff1a;使用this.$set()和this.$delete() 上代码&#xff1a;…

Vue2 + JSX使用总结

什么是JSX 摘自 React 官方&#xff1a; 它被称为 JSX&#xff0c;是一个 JavaScript 的语法扩展。我们建议在 React 中配合使用 JSX&#xff0c;JSX 可以很好地描述 UI 应该呈现出它应有交互的本质形式。JSX 可能会使人联想到模板语言&#xff0c;但它具有 JavaScript 的全部…

前端人必看的JS面试题汇总

面试是每一个前端人在求职过程中都需要面对的事情。在面试过程中&#xff0c;面试官没有办法通过实践操作去了解应聘者的技能水平&#xff0c;所以他们更多地会通过“八股文”的考察来判断你是否符合公司的招聘要求。所以作为一个前端人&#xff0c;在掌握好前端技能的同时&…

vue导出word

最近的项目中&#xff0c;需要把vue中的部分内容导出为word形式&#xff0c;之前没有做过这方面的&#xff0c;特记录&#xff0c;由于是初学&#xff0c;所以整理了此模板&#xff0c;注意&#xff1a;这是一个模板&#xff0c;并不是相关字段的解析&#xff0c;每个字段都是做…

ECharts柱状图关闭鼠标hover时的高亮样式

最近在做图表相关的需求&#xff0c;使用的是echarts来画图。 今天算是遇到一个比较坑的点了吧&#xff0c;就是两根柱状图重叠对比&#xff0c;设计图把某根柱状图的颜色设计得比较浅&#xff0c;因为echarts的柱状图本身hover到柱子上的时候&#xff0c;会有个高亮状态&…

JavaScript纯前端解析Excel文件

最近在开发时候遇到了这样的一个需求&#xff1a;需要在前端通过解析Excel将Excel中的值进行回传填入。我想在实际的开发过程中&#xff0c;肯定大家也会遇到这样的需求&#xff0c;在这介绍一个比较不错的JS工具库&#xff1a;js-xlsx&#xff0c;及该库的简单使用方法。 1、…

Three.js-设置环境纹理及加载hdr环境贴图

目录 1.hdr 2.环境纹理&#xff08;全景&#xff09; 3.CubeTextureLoader加载立方体环境纹理 4.RGBELoader环境纹理加载 1.hdr HDR全称High-Dynamic Range&#xff08;高动态光照渲染&#xff09;&#xff0c;通过HDR&#xff0c;显示器或相机可以很好的表现超出其亮度范围…