解决gateway网关转发无法访问静态资源问题

在尝试通过Gate网关转发到UI微服务时遇到静态资源无法访问的问题,通过调整网关路由设置和在页面JS引用中添加static目录,以及处理图片路径,成功解决了访问静态资源的障碍。

今天搭建一个项目想从gate网关转发到ui微服务,但无法访问微服务静态资源。

经过一系列的研究后修改配置即可访问。

步骤一:配置网关路由

步骤二:页面js引入添加static目录

注意:图片也要添加一层目录

 

### 关于 Spring Cloud Gateway 网关跳转解决方案 #### 一、理解路由配置基础 Spring Cloud Gateway 是基于 Spring Framework 的应用程序,用于构建 API 网关。它能够接收 HTTP 请求并将其转发至目标 URI 或者内部定义的服务实例。对于网关而言,URI 定义了请求匹配特定路径模式后的目的地[^2]。 #### 二、解决404错误的方法 当遇到404 Not Found 错误时,常意味着所请求的资源无法找到。这可能是由于路由规则设置不当造成的。为了防止这种情况发生,在配置文件中应确保所有的路由都指向有效的下游服务或静态页面。如果确实不存在对应资源,则可以过全局异常处理器返回自定义的消息体告知用户具体原因[^1]。 #### 三、实现精准跳转功能 为了让网关正确执行跳转操作而不是报错,需要仔细设计 `RouteLocator` Bean 中的各项参数: - **Path Predicate**: 使用 path 方法指定哪些 URL 模式下的请求会被捕获; - **Filters**: 应用过滤器修改原始HTTP请求头信息或其他属性以便更好地适配后端服务器需求; - **Target Service Address (URI)**: 明确指出一旦条件成立就要转向的具体位置;如果是外部网站可以直接填写完整的URL字符串形式如 "http(s)://example.com"。 ```yaml spring: cloud: gateway: routes: - id: user_service_route uri: lb://USER-SERVICE # 这里使用了负载均衡前缀lb,表示会自动寻找注册中心里的USER-SERVICE应用 predicates: - Path=/api/users/** ``` 上述YAML片段展示了如何过声明式的语法创建一条简单的路由记录,其中包含了ID、目的地址以及谓词表达式三个主要组成部分。每当有符合 `/api/users/**` 路径格式的数据包抵达网关节点之后就会被重定向到名为 USER-SERVICE 的微服务上去处理。 #### 四、考虑跨域资源共享(CORS) 另外值得注意的一点是在实际项目开发过程中还可能涉及到浏览器同源策略限制的问题。因此建议开发者们提前规划好 CORS 配置以允许来自其他域名合法发起 AJAX 请求访问受保护的内容[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值