背景
最近使用 Ant design 重新部署了一套系统,唯一不同的是多了文件上传功能,文件上传功能是做了一些自定义操作。
405 是 Nginx 返回的错误,意思是 nginx 静态资源服务的访问不支持 POST 请求。
定位问题
1、upload 组件使用的时候,把 action 直接删除,然后按照文档使用
2、本地环境,上传图片没有问题
3、上线之后,上传图片报错 405
本地开发环境发现每次上传图片,会图片请求一次,并且自身网页请求一次。共产生两次请求。
原因是antd的upload组件,如果没有action的配置项,会默认以当前网页的url作为路径,并进行图片POST方法的请求。
解决问题
前端方式:可采用组件 customRequest 方法来阻止默认上传行为【使用方式可以自己查】
后端方式:对这次默认行为返回200即可
因为懒得修改前端实现方式了,直接修改 Nginx ,如:
server {
listen 80;
server_name web.test.com;
#前端网站
location / {
root /usr/local/www; # 静态页面根目录
index index.html;#默认首页
}
# 405时 直接返回 200
error_page 405 =200 $request_uri;
}
参考:
https://juejin.cn/post/7090888060610543646
http://blog.mryxh.cn/1278.html
https://pro.ant.design/zh-CN/docs/deploy/