Nginx 配置不当造成加载静态资源件提示ERR_CONTENT_LENGTH_MISMATCH解决方法

本文记录了一次解决Nginx配置问题的过程,详细介绍了因权限设置不当导致的资源加载失败现象及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间,心血来潮,捣鼓了一个个人博客,在本地运行时,资源文件一切正常,发布到到服务器上时却提示如下错误:net::ERR_CONTENT_LENGTH_MISMATCH

猜想可能是nginx文件配置的不合理,查看nginx日志发现很多js,css都没有加载成功,

[error] 22284#0: *8521 open() "/home/tomcat1/webapps/leo-web/css/home.css" failed (2: No such file or directory), client: 119.162.21.135, server: 47.93.57.254, request: "GET /css/home.css HTTP/1.1", host: "www.lei-o.cn", referrer: "http://www.lei-o.cn/",

经过百度,初步定位是nginx目录权限的问题,添加一个nginx组,一个nginx用户,然后分配权限

chown -R nginx.nginx ./nginx (将nginx目录下的文件属主和用户制定为nginx)


然后重启nginx 命令: ./sbin/nginx -s reload,发现提示:


去logs目录发现没有nginx.pid文件,使用./sbin/nginx -c ./conf/nginx.conf 命令,会自动在nginx目录形成nginx.pid文件,如果nginx之前已经运行,会提示下面的端口占用,




使用netstat -ntpl命令查看占用80端口的应用,



发现以前的nginx占用了80端口,使用kill命令杀掉该进程


再次运行./sbin/nginx -c ./conf/nginx.conf,就正常了,


重启nginx后,在浏览器中敲入www.lei-o.cn,访问资源文件都正常了


### 修改 Nginx 配置 对于 `net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)` 错误,一种有效的解决办法是在 Nginx配置中调整缓冲区设置。具体来说,在 http 块内增加如下几行配置: ```nginx proxy_buffer_size 128k; proxy_buffers 32 128k; proxy_busy_buffers_size 128k; ``` 这些参数的作用分别是设定代理服务器与后端通信使用的单个缓存大小、定义多少个这样的缓存以及当繁忙允许的最大未写入数据量[^3]。 ### 调整响应头中的Content-Length字段 另一个可能的原因在于客户端请求的是部分内容(通过 Range 请求),而服务器返回的内容长度不匹配实际传输的数据量。这可能是由于某些情况下资源被部分加载或中断所引起的。为了防止这种情况发生,可以尝试禁用范围请求功能,即移除 HTTP 头部中的 Accept-Ranges 字段或将它的值设为空字符串。可以通过编辑 Web 应用程序的代码来实现这一点;如果是使用 Nginx,则可以在 location 或 server 段落里加上下面这条指令: ```nginx add_header 'Accept-Ranges' 'none'; ``` 这样做会使得浏览器不再发送带有 range 的 GET 请求,从而避免因分片下载而导致的内容长度不符问题[^2]。 ### 清理并重新部署应用 有该错误也可能是因为构建过程中的某些异常造成的。因此建议清理项目的 node_modules 文夹和 dist 输出目录后再执行一次完整的打包流程,并上传最新版本的应用至 Nginx 进行测试。确保所有静态资源都正确无误地被打包进了最终产物之中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值