gateway引入knife4j-gateway-spring-boot-starter后knife4j: gateway: enabled: false 还是可以访问doc.html的uim有什么办法能显示404
时间: 2024-10-12 18:06:55 浏览: 18
当你在Spring Boot项目中引入了`knife4j-gateway-spring-boot-starter`并配置了`gateway.enabled: false`,表示你禁用了Knife4J Gateway的功能,这将阻止直接通过Gateway路由去访问文档页面(如`doc.html`)。在这种情况下,如果你想要访问该页面,并期望返回404 Not Found响应,你需要按照以下步骤操作:
1. **检查URL路径**:确保你没有直接访问`http://your-server-url/doc.html`,因为默认的404处理是在后端应用而不是gateway。
2. **启用静态资源映射**:如果`doc.html`应该作为静态资源存在,需要在Spring Boot应用中配置一个静态资源处理器。例如,在`application.yml`或`application.properties`中添加:
```yaml
spring:
resources:
static-locations: classpath:/META-INF/resources/,classpath:/static/,classpath:/public/
```
3. **修改访问路径**:如果你想让Gateway提供这个静态文件,可以临时开启gateway,并调整配置允许外部访问特定的路径,比如:
```yaml
gateway:
enabled: true
routes:
- id: doc-page
uri: /ui/** # 或者你的实际路径
predicates:
Path=/ui/**
```
然后访问`http://your-server-url/ui/doc.html`,可能会看到404错误,因为实际上这个资源不在后端API路由下。
4. **检查日志**:如果以上都没有解决问题,确认你的应用程序是否接收到请求,以及是否有相应的日志记录表明为何返回404。
阅读全文