Tiven

Tiven

博观而约取,厚积而薄发

天问的个人网站(天问博客),专注于Node.js、Vue.js、React、Vite、Npm、Nginx等大前端技术。不断学习新技术,记录日常开发问题,持续分享coding,极客开源,共同进步。生命不息,奋斗不止... [ hexo blog ]

Nginx学习与实战 · 解决net::ERR_CONTENT_LENGTH_MISMATCH 206问题


Vue项目引入了d3.js,在打包部署到nginx静态服务后,页面不能正常展示,F12打开控制台,发现报了几个net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)错误。第一次遇到Status Code206的问题,所以本文记录一下。

Nginx 206 (Partial Content)

原因

  • 项目打包后有些文件比较大,例如这里的d3.min.js有140kb,还有chunk-vendors.js文件有1.2Mb。
  • 使用Nginx部署静态文件,配置了反向代理服务,而代理服务器的响应内容缓存区默认比较小,导致部分文件出现加载不全的问题。

解决方案

  • 增加缓存大小
  • 增加nginx的代理缓存区

nginx.confhttp里面加入三行配置,如下:

#user  nobody;
worker_processes  1;

events {
  worker_connections  1024;
}

http {

  sendfile        on;
  #tcp_nopush     on;
    
  keepalive_timeout  65;
    
  # 增加配置 start
  proxy_buffer_size 128k;
  proxy_buffers   32 128k;
  proxy_busy_buffers_size 128k;
  # 增加配置 end
    
  #gzip  on;  
  
  server {
    # ...
    # ...
  }	
  
# ...
}
  • 保存成功后,重启Nginx
nginx -t

nginx -s reload

再次刷新页面发现页面可以正常展示了,没有了206的错误,问题解决。

耐思^_^


Nginx 相关推荐


欢迎访问:天问博客