问题

SpringBoot 集成 Swagger 时,前端页面出现 net::ERR_CONTENT_LENGTH_MISMATCH 的问题。

解决过程

之前思考错了方向,以为是 Shiro 拦截了 Swagger 的静态资源;但发现本地可以访问,而测试环境不能访问,所以认定应该不是代码的问题。最后分析下来,发现是测试环境 nginx 的 proxy_temp 的文件夹权限问题。

刚开始时,nginx 没有配置用户,导致 proxy_temp 的访问权限都是 nobody:nobody,查看 nginx 的错误日志 error.log 也出现

1
*188 open() "/usr/local/nginx/proxy_temp/1/01/0000000011" failed (13: Permission denied)

解决方法

先关闭 nginx,然后执行 chown -R user:user proxy_temp 修改 proxy_temp 的所属用户和用户组为当前 nginx 的用户,最后启动 nginx 即可。