使用spring cloud gateway 作流量转发,配置如下:
spring:
cloud:
gateway:
default-filters: #全局用于配置所有路由共享过滤器
- PreserveHostHeader #发送原主机头
globalcors:
cors-configurations:
'[/**]': # 匹配所有请求
allowedOrigins: "*" #跨域处理 允许所有的域
allowedMethods: # 支持的方法
- GET
- POST
- PUT
- DELETE
routes:
- id: product_route
uri: http://192.168.0.101:8080
order: 1
predicates:
- Path=/**
配置之后实现访问此gateway时所有流量转发到192.168.0.101:8080,js、css等资源正常加载,图片资源虽然响应为200,但是无法正常显示。请问如何解决?
请求头如下:
Accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Host: localhost:9001
Pragma: no-cache
Referer: http://localhost:9001/static/css/chunk-66d1aff0.592c2027.css
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
响应头如下:
Accept-Ranges: bytes
Content-Length: 22278
Content-Type: image/png
Date: Wed, 11 Aug 2021 06:16:04 GMT
ETag: "60e2fa9d-369b"
Last-Modified: Mon, 05 Jul 2021 12:27:09 GMT
Server: nginx/1.19.4
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Frame-Options: SAMEORIGIN
其中,我发现不经过流量转发直接访问图片资源时,响应的Content-Length大小并不等于经过流量转发得到的大小,不知道怎样才能使图片正常显示!