前端页面加载css,和js文件的时候,常常出现ERR_CONTENT_LENGTH_MISMATCH
的报错状况。css
在单独打开hearder
中css,js的网络地址是能打开的,因此排除了最简单的地址错误。前端项目是由nginx代理的,因此能够查看nginx的日志,看看有无线索。前端
进入${NGINX_HOME}\logs
,查看error.log
,获得以下信息:nginx
2018/07/13 14:22:49 [crit] 275197#0: *1543 open() "/usr/local/nginx/proxy_temp/4/30/0000000304" failed (13: Permission denied) while reading upstream, client: 192.168.75.11, server: xxxx.xxxx.com, request: "GET /model-web/static/js/vendor.7e49e6e8578e1e242c55.js.map HTTP/1.1", upstream: "http://xxx.xxx.xxx:8080/model-web/static/js/vendor.7e49e6e8578e1e242c55.js", host: "xxx.xxx.xxx.xxx:8081"
线索很明显,在请求vendor.7e49e6e8578e1e242c55.js
的时候,nginx在尝试访问/usr/local/nginx/proxy_temp/4/30/0000000304
,结果由于没有权限,致使了请求失败。web
那么,为何nginx要访问proxy_temp
文件夹呢,由于proxy_temp
是nginx的缓存文件夹,个人css和js文件过大了,因此nginx通常会从缓存里面去拿,而不是每次都去原地址直接加载。缓存
进入/usr/local/nginx/proxy_temp
,查看文件权限。网络
ll
能够看到4
文件夹的全部者是svenchen
。svg
查看如今nginx的使用者,发现是root
。
ui
那么,致使没有权限的缘由也查清了,就是文件的全部者和访问者不是同一用户。spa
chown -R root.root./*
。这样声明以后,保存的缓存文件的使用者就会是root了。
重启nginx,./nginx -s reload
,问题解决。.net
版权声明:本文为博主原创文章,转载请注明出处:http://www.javashuo.com/article/p-mzptrgpp-bp.html