swagger3 TypeError: Cannot read properties of null (reading ‘1‘)

**

swagger能访问但是进页面是空白的,跟了下js代码是要匹配路径才行。

**
在这里插入图片描述
修改下静态资源映射路径

	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
    }

重启项目完美解决,如果原来有静态资源映射请加在下面,或者更改原来的映射关系。

在使用 Swagger 时,遇到的 `TypeError: Cannot read properties of undefined (reading 'url')` 错误通常与 Swagger 配置不当或依赖模块未能正确初始化有关。此类错误表明某个对象在运行时为 `undefined`,而代码试图访问其属性(如 `url`)。 ### 常见原因及解决方案: 1. **Swagger 配置未正确初始化** - 确保 Swagger 配置类或初始化代码中,所有必要的字段(如 `url`)均已正确赋值。 - 检查是否有拼写错误或字段名错误导致配置未生效。 - 示例配置(Spring Boot 项目中使用 Springdoc OpenAPI): ```java @Configuration public class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("API Title") .version("1.0") .description("API Description")) .servers(Collections.singletonList( new Server().url("http://localhost:8080") // 确保 url 正确设置 )); } } ``` 2. **依赖版本不兼容** - 有时,Swagger 或其 UI 组件(如 Swagger UI、Knife4j、Springdoc)的版本与其他库或框架不兼容,可能导致运行时错误。 - 尝试升级或降级相关依赖版本,确保其与项目框架版本兼容。 3. **未正确启用 Swagger** - 在 Spring Boot 项目中,确保启用了 Swagger,通常通过 `@EnableOpenApi` 或 `@EnableSwagger2` 注解。 - 如果使用的是 Springdoc,则应确认是否遗漏了相关依赖或配置项。 4. **API 路径未正确映射** - 若 Swagger 配置中引用了特定的 API 路径,但这些路径未被正确映射或扫描到,也可能导致 `url` 属性未定义。 - 确认是否配置了正确的包扫描路径,例如: ```java @Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .group("public") .packagesToScan("com.example.controller") // 确保包路径正确 .build(); } ``` 5. **前端 UI 组件加载问题** - 如果问题出现在前端(如 Knife4j 或 Swagger UI),可能是前端组件未能正确加载后端提供的 OpenAPI/Swagger JSON 文件。 - 检查浏览器控制台日志,确认请求的 JSON 文件是否返回 404 或格式错误。 - 确保访问路径正确,例如 `/v3/api-docs` 或 `/swagger-resources`。 6. **缓存问题** - 有时浏览器缓存可能导致旧的 Swagger 配置文件被加载,尝试清除浏览器缓存或使用无痕模式重新访问。 ### 示例修复代码(Springdoc) ```java @Configuration public class OpenApiConfig { @Bean public OpenAPI openAPI() { return new OpenAPI() .info(new Info().title("My API").version("1.0")) .servers(Collections.singletonList( new Server().url("http://localhost:8080"))); // 确保 url 存在且正确 } @Bean public GroupedOpenApi groupedOpenApi() { return GroupedOpenApi.builder() .group("api") .pathsToMatch("/api/**") .packagesToScan("com.example.controller") .build(); } } ``` ### 建议调试步骤 - 检查后端日志,确认 Swagger 配置是否成功加载。 - 使用 Postman 或 curl 请求 `/v3/api-docs` 查看生成的 OpenAPI 文档是否包含完整信息。 - 查看浏览器控制台输出,确认前端是否接收到正确的 JSON 数据。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tutuxfsh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值