踩坑:Nacos中的路由规则无效报错404但后端配置文件的路由规则正常

问题描述

原本在后端的网关配置文件bootstrap.yaml中配置路由规则,正常启动有效,实现请求分发。
后续将复制的路由规则移动到Nacos中,就一直请求分发失效,报错404

错误操作

我在后端配置文件bootstrap.yaml中配置路由规则生效后,删除原有成功的路由规则。在Nacos中创建配置,Data Id为 gateway.properties。
进入该文件,里面有转换为yaml格式的按钮,就偷懒使用该按钮并复制之前成功的yaml格式的路由规则到本文件中。
启动后,路由规则失效并报错404,提示路由不存在

原因分析:

后端配置Nacos读取配置时,指定file-extension为properties(默认值)
Nacos配置的文件名为gateway.properties,文件内的格式却因偷懒改成了yaml格式的,导致一致报错404。

1.在bootstrap.yaml文件中配置Nacos中的配置文件后缀为properties

spring:
  application:
    name: gateway

  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: 42750b6f-e673-49e3-b741-6e5e67d6cfc1

      ## 默认读取的文件: {application.name}.{file-extension}
      ## 即读取Nacos中的名为Data Id的文件
      ## application.name: 配置的服务名,本例为 gateway
      ## file-extension: 配置文件的后缀名,默认为 properties
      config:
        server-addr: 127.0.0.1:8848
        namespace: 42750b6f-e673-49e3-b741-6e5e67d6cfc1
        
        ################这里踩坑了#################
        file-extension: properties
        ################这里踩坑了#################
        ##开启动态刷新读取
        refresh-enabled: true

2.偷懒在Nacos的gateway.properties配置文件中使用 yaml按钮强转文件格式
在这里插入图片描述


解决方案:

方法一:
我将原本成功的路由规则改成properties格式,并复制到gateway.properties文件,成功解决404报错。

方法二:

  1. 将后端Nacos读取配置时的file-extension设置成yaml
  2. Nacos中新建名为gateway.yaml的配置文件,并将yaml格式的路由规则复制过去。

菜鸡不是在踩坑就是在踩坑的路上。
看完如有帮助,请点个赞(别白嫖啊),我也想看看同一坑能容纳多少人!哈哈哈哈!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值