js文件,postman正常访问,html引入报错net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK) 解决办法

概要

遇到的一个抽象问题,简单记录一下
vue打包出来的项目,放服务器上访问,会有部分js文件报错
net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
尝试使用网页和postman直接请求js文件,发现能正常打开

排查过程

首先用另外一台电脑连流量试了一下,发现跟客户端没关系,那就只可能是服务器端的问题,去查nginx日志,用文件名作为关键词,发现这个

2024/08/22 16:11:36 [crit] 5881#0: *80999 mkdir() “/usr/local/openresty/nginx/proxy_temp/1/35” failed (13: Permission denied) while reading upstream,…

关键就是错误码13,代表在访问proxy_temp文件夹时权限不足,但是我的静态资源也没放这里面啊,去查一下发现

这个文件夹是nginx的缓存文件夹,在访问比较大的静态资源(js文件,css文件)时nginx就会从这里去拿

那么问题就简单了,改一下这个文件夹的访问权限就OK

问题解决

首先看一下这个文件夹的访问权限

cd /usr/local/openresty/nginx
ll

然后发现这个文件夹的权限居然是nobody,这还访问个啥
设置一下

chown www root proxy_temp
chmod -Rf 777 proxy_temp

然后重启ng

./nginx -s reload

再次打开网页,发现已经正常了

小结

这个问题诡异的地方在于使用网页和postman访问能正常打开,初步怀疑是nginx在遇到一次请求多个静态资源时就会从proxy_temp缓存文件夹去拿文件(因为我index.html引入的静态资源比较多),而在单个请求时就会直接去文件位置去拿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值